LEFT JOIN 사용시주의 사항

오늘 나는 연결을 사용하여 SQL을 작성하고 조인이 시작된 상태로 두었고 결과 ... 오류 가보고되었습니다.

sql을 클릭하십시오 (이해할 수 있도록 내부 요소를 대체하십시오).

		
 SELECT 
    A.aid
    B.bname
    C.csex
	D.dname
    E.ename
    F.fname
FROM 
    Admin A,
    Boy B,
    Classmate C
        
	LEFT JOIN Dog D 
	ON 
	(C.cid = D.did)
	LEFT JOIN (
	   SELECT eid,ename FROM Element
	) E
	ON(
	    C.cid = E.eid
	)
	LEFT JOIN Friend F
    ON(
        A.aid = F.fid 
    )

오류 메시지를 살펴 보겠습니다.

1) [Code: -338, SQL State: 42972]  An ON clause associated with a JOIN operator or in a MERGE statement is not valid.. SQLCODE=-338, SQLSTATE=42972, DRIVER=4.22.29
2) [Code: -727, SQL State: 56098]  An error occurred during implicit system action type "2". Information returned for the error includes SQLCODE "-338", SQLSTATE "42972" and message tokens "42972".. SQLCODE=-727, SQLSTATE=56098, DRIVER=4.22.29

이 오류는 JOIN 연산자 또는 MERGE 문과 관련된 ON 절이 유효하지 않음을 의미합니다. ON에 문제가 있습니다.

[이유] 왼쪽 조인은 테이블을 따르고 있는데, 이는 다음 테이블의 요소 만 호출 할 수 있음을 의미합니다. 여기서 마지막 왼쪽 조인에서는 테이블 A의 요소가 호출되어 잘못된 것입니다.

[수정]

		
 SELECT 
    A.aid
    B.bname
    C.csex
	D.dname
    E.ename
    F.fname
FROM 
    Admin A 
    LEFT JOIN Friend F
    ON(
        A.aid = F.fid 
    ),
    Boy B,
    Classmate C   
	LEFT JOIN Dog D 
	ON 
	(C.cid = D.did)
	LEFT JOIN (
	   SELECT eid,ename FROM Element
	) E
	ON(
	    C.cid = E.eid
	)
	

알겠습니다. 오늘 여기 있습니다. 내년에는 520시에 초과 근무를하지 않기를 바랍니다.

추천

출처blog.csdn.net/qq_36766417/article/details/106243265