인프런 커뮤니티 질문&답변
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 사용 시 주의점에 대한 추가 설명 보기]
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





