programing

join을 사용하여 "not in ()" SQL 쿼리를 쓰는 방법

topblog 2023. 7. 12. 22:12
반응형

join을 사용하여 "not in ()" SQL 쿼리를 쓰는 방법

누가 join을 사용하여 다음 sql 쿼리를 작성하는 방법을 알려줄 수 있습니까?저는 가능한 한 사용하지 않는 것을 원하지 않습니다. 저는 또한 조건을 대체하고 싶습니다.

SELECT d1.Short_Code
FROM domain1 d1
WHERE d1.Short_Code NOT IN (
  SELECT d2.Short_Code
  FROM Domain2 d2
)

SQL Server 2008을 사용하고 있습니다.

이 문서:

관심이 있으시다면요

간단히 말해서, 이 질문은 다음과 같습니다.

SELECT  d1.short_code
FROM    domain1 d1
LEFT JOIN
        domain2 d2
ON      d2.short_code = d1.short_code
WHERE   d2.short_code IS NULL

작동하겠지만 a보다 덜 효율적입니다.NOT NULL(또는)NOT EXISTS) 건설합니다.

다음을 사용할 수도 있습니다.

SELECT  short_code
FROM    domain1
EXCEPT
SELECT  short_code
FROM    domain2

둘 다 사용하지 않습니다.NOT IN도 아니다WHERE(또한 조인하지도 않음!), 그러나 이렇게 하면 의 모든 중복 항목이 제거됩니다.domain1.short_code있으면

SELECT d1.Short_Code 
FROM domain1 d1
LEFT JOIN domain2 d2
ON d1.Short_Code = d2.Short_Code
WHERE d2.Short_Code IS NULL

나는 선택할 것입니다.NOT EXISTS이 경우에는

SELECT D1.ShortCode
FROM Domain1 D1
WHERE NOT EXISTS
    (SELECT 'X'
     FROM Domain2 D2
     WHERE D2.ShortCode = D1.ShortCode
    )

언급URL : https://stackoverflow.com/questions/5676559/how-to-write-not-in-sql-query-using-join

반응형