cross join 문의
51
1 asked
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'.
Answer 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 사용 시 주의점에 대한 추가 설명 보기]
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
신규 쿼리 공간 오류 문의
0
48
1
실습 문제 20번) 구문 작성 오류 관련 문의사항
0
62
1
에러가 발생합니다.
0
122
1
쿼리 실습링크
0
118
1
3중,4중 조인 질문
0
153
1
강의자료 및 슬랙
0
311
1
실습 시 에러. 강의와 똑같이 써도 에러나요.
1
608
2
리밋 입력 시 에러
0
608
2
쿼리 작성시 작은 따옴표와 큰 따옴표
0
5523
2
SQLD 자격증 관련 질문
0
482
1
PK 컬럼에 대한 DISTINCT 적용
0
673
1
질문드리겠습니다.
0
371
1
질문드리겠습니다.
0
415
1
질문드리겠습니다.
0
394
1
질문드립니다.
0
386
1
count(distinct) 구문 오류 질문드립니다.
0
863
1
group by
1
560
1
cross <-> inner join 문의
1
289
1
실습문제 9-10 질문
1
320
1
실습문제 3-4(functions) 질문
1
254
1
select 절 함수 문의
1
302
1
제가 작성한 쿼리문도 맞게 쓴걸까요?
1
351
2
select절에서 함수 사용할 때 질문이 있습니다.
1
310
2
as로 컬럼명을 설정한 내용을 하위 코드에서 사용할 수 없는건가요?
1
270
3

