강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

냐냐냐님의 프로필 이미지
냐냐냐

작성한 질문수

[개념반]배워서 바로 쓰는 SQL 쿼리

실습 문제 1 (Cross Join)

cross join 문의

작성

·

15

0

cross join 쿼리에서는 on을 사용할 수 없다고 나와서요.
어떤게 맞는건가요?

[쿼리작성]
SELECT *

FROM Customers c

CROSS JOIN Orders o

on c.customerid = o.custeomerid

;

 

[에러메세지]
Error: SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near the keyword 'on'.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

cross join을 사용할 때 ON 조건을 사용할 수 없는 이유에 대해 설명드리겠습니다. CROSS JOIN은 두 테이블 간의 모든 조합을 생성하는 조인입니다. 따라서 ON 조건을 설정하는 메커니즘을 사용하지 않습니다. 대신 CROSS JOIN을 수행한 후 WHERE 절을 통해 조인 조건을 추가할 수 있습니다.

아래는 수정된 쿼리 예입니다:

SELECT *
FROM Customers c
CROSS JOIN Orders o
WHERE c.customerid = o.customerid;

이렇게 WHERE를 사용하여 조인 조건을 추가하면 원하는 결과를 얻을 수 있습니다. ON 조건은 INNER JOIN이나 OUTER JOIN과 같이 명시적으로 두 테이블을 연결할 때 사용하는 것이기 때문에 CROSS JOIN과는 다른 사용법을 가지고 있습니다.

[cross join 사용 시 주의점에 대한 추가 설명 보기]

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

냐냐냐님의 프로필 이미지
냐냐냐

작성한 질문수

질문하기