-1
부모 테이블과 하위 테이블이 두 개 있습니다.자식 테이블에서 하위 항목과 일치하는 항목을 쿼리하는 방법
ParentChild 테이블에는 2 개의 열 PID와 CID가 있으며, 여기서 1 개의 PID는 여러 개의 CID에 매핑 할 수 있습니다. 하위 테이블에 고유 한 CID가 있습니다. 문제는 자식 테이블의 CID가 ParentChild 테이블의 모든 CID를 반드시 덮지는 않는다는 것입니다.
이제 각 PID가 모든 CID를 하위 테이블에 가지고있는 모든 PID를 찾고 싶습니다. 예 : P1에 3 개의 CID가 있고, 모두 자식 테이블에 있으면 P1이 선택됩니다. P2에는 2 개의 CID가 있고, 모두가 하위 테이블에 있지 않으면 P2가 선택되지 않습니다.
어떻게 명확하고 효율적인 방법으로 쿼리를 작성합니까? 모든 어린이가 일치
select pc.pid
from parentchild pc left join
child c
on pc.cid = c.cid
group by pc.pid
having count(*) = count(c.cid);
마지막 조건 검사 :
일부 샘플 데이터보기 –