,하지만 내 추측 일 것 table_A.Column1
에 NULL
값이 있습니다. 의 것과 동일
SELECT Column1
FROM Table_B
WHERE Column1 NOT IN (1, 2, 3, NULL);
: Column1 <> NULL
이후
SELECT Column1
FROM Table_B
WHERE Column1 <> 1
AND Column1 <> 2
AND Column1 <> 3
AND Column1 <> NULL;
쿼리가 어떤 결과를 반환하지 않습니다, 사실이 아니다 당신이 null 값을 가지고 한 경우, 쿼리는 같은 동등 할 것이다. 당신이 NULL 열이있을 수 있습니다 원하는 결과를 달성하기 위해 가장 문법적으로 유사한 방법 NOT EXISTS
을 사용하고 있습니다 :
INSERT INTO Table_A(column1)
SELECT Column1
FROM Table_B AS B
WHERE NOT EXISTS (SELECT 1 FROM Table_A AS A WHERE A.Column1 = B.Column1);
그러나, 당신이 사용할 수있는 또 다른 방법은이에서
INSERT INTO Table_A(column1)
SELECT Column1
FROM Table_B AS B
LEFT JOIN Table_A AS A
ON A.Column1 = B.Column1
WHERE A.Column1 IS NULL;
왼쪽 table_A
에 가입하여 A.Column1
이 NULL
이어야하며 이미 Table_A
에있는 레코드를 제거해야합니다.
는 내가 의도가 훨씬 더 분명하다 생각하기 때문에, (
NOT EXISTS
) 전자를 선호하지만, 만약 당신이
use MySQL the latter will perform better
또는 당신은 또한 사용할 수 있습니다
INSERT INTO Table_A(column1)
SELECT Column1
FROM Table_B AS B
WHERE B.Column1 IS NOT NULL
AND B.COlumn1 NOT IN (SELECT A.Column1 FROM Table_A AS A WHERE A.Column1 IS NOT NULL);
* "작동하지 않음"*은 무엇을 의미합니까? 당신은 정교 할 수 있습니까? 오류가 있었습니까? 또한, 어떤 DBMS를 사용하고 있습니까? – GarethD