이것은 단순한 외부 아니다 가입 당신이 만를 찾고 있다면 하나의 테이블에 존재하고 다른 테이블에 존재하지 않는 권한.
SELECT t1.userid, t1.entitlement_1, NULL AS entitlement_2
FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2
WHERE t2.userid = t1.userid
AND t2.entitlement_2 = t1.entitlement_1)
UNION ALL
SELECT t2.userid, NULL AS entitlement_1, entitlement_2
FROM table2 t2
WHERE NOT EXISTS (SELECT 1 FROM table1 t1
WHERE t1.userid = t2.userid
AND t1.entitlement_1 = t1.entitlement_2)
첫 번째 select는 table2에없는 userid 및 entitlement_1 쌍을 찾고 두 번째 select는 그 반대입니다. userid 또는 (userid, entitlement)가 기본 키 또는 기타 항목 인 경우와 같이 관련 테이블에 대한 많은 정보를 제공하지 않았으므로이를 최적화 할 수 있습니다.
테이블 2에서 entitlement_2를 어떻게 검색합니까? – eaolson
SELECT *를 사용하여 결과에 JOIN하면 ON 절에서 참조하는 모든 테이블의 모든 열이 포함됩니다. – Rucia
오 이런, 전혀 알지도 못했습니다. * – eaolson