오른쪽 테이블이 비어있을 수있는 두 테이블을 조인하려고합니다. 비어 있으면 왼쪽 테이블의 모든 레코드를 원합니다. 비어 있지 않으면 오른쪽 테이블에없는 왼쪽 테이블의 모든 레코드를 원합니다. 이렇게 : 벤 다이어그램
더 나아가 tbl.free = 1이되도록 결과를 필터링해야합니다.
다음과 같은 간단한 작업이 될 것이라고 생각했습니다.
SELECT tbl1.id, tbl1.name FROM tbl1 LEFT JOIN tbl2 ON tbl1.id <> tbl2.fk1 WHERE tbl1.free=1
내가 얻는 결과는 tbl2가 비어있을 때 모든 tbl1 항목을 얻습니다. free = 1-이것은 tbl2에 항목이있을 때 좋습니다. tbl1의 모든 항목을 얻습니다.-위와 정확히 동일합니다. 좋은)
이 작업을 수행하려면 어떻게해야합니까 ???
이것은 추측이지만 WHERE
두 번째 테이블의 열이 NULL
이고 첫 번째 테이블의 특정 레코드가 일치 하지 않음 을 나타내는 조건을 절 에 추가해야 할 수 있습니다 .
SELECT tbl1.id, tbl1.name
FROM tbl1
LEFT JOIN tbl2
ON tbl1.id = tbl2.fk1
WHERE tbl1.free = 1 AND tbl2.fk1 IS NULL
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다