반응형
여러 열에서 NOT 선택
다음 쿼리를 구현해야합니다.
SELECT *
FROM friend
WHERE ( friend.id1, friend.id2 )
NOT IN (SELECT id1,
id2
FROM likes)
그러나 NOT IN은 여러 열에 구현 될 수 없습니다. 이 쿼리를 어떻게 작성합니까?
다음에 대해 생각하는지 잘 모르겠습니다.
select * from friend f
where not exists (
select 1 from likes l where f.id1 = l.id and f.id2 = l.id2
)
id1이 id1과 id2와 id2와 관련된 경우에만 작동합니다.
신비하게 알려지지 않은 또 다른 RDBMS. 귀하의 구문은 PostgreSQL에서 완벽하게 괜찮습니다. 다른 쿼리 스타일 (특히 NOT EXISTS변형 또는 a LEFT JOIN)이 더 빠르게 수행 될 수 있지만 쿼리는 완벽하게 합법적입니다.
NOT IN그러나 어떤 NULL값을 포함 할 때 의 함정에 유의하십시오 .
LEFT JOIN이있는 변형 :
SELECT *
FROM friend f
LEFT JOIN likes l USING (id1, id2)
WHERE l.id1 IS NULL;
NOT EXISTS변형에 대한 @ Michał의 답변을 참조하십시오 .
네 가지 기본 변형에 대한 자세한 평가 :
아마도 NOT EXISTS여러 열에 사용해야 합니다.
참고 URL : https://stackoverflow.com/questions/8033604/select-not-in-multiple-columns
반응형
'Program Club' 카테고리의 다른 글
| 스칼라 심볼의 목적? (0) | 2020.12.04 |
|---|---|
| 동일하지 않은 데이터 프레임을 병합하고 누락 된 행을 0으로 바꿉니다. (0) | 2020.12.04 |
| pymongo에서 "show dbs"를 발행하는 방법 (0) | 2020.12.04 |
| ASP.NET MVC에서 사용자 지정 클래스를 어디에 넣을 수 있습니까? (0) | 2020.12.04 |
| PKIX 경로 빌드를 무시하는 방법 실패 : sun.security.provider.certpath.SunCertPathBuilderException? (0) | 2020.12.04 |