table1 (id, name) table2 (id, name)
쿼리:
SELECT name
FROM table2
-- that are not in table1 already
SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
Q: 여기서 무슨 일이 일어나고 있나요?
A: 개념적으로, 우리는 table1
에서 모든 행을 선택하고 각 행에 대해 table2
에서 name
열에 대해 동일한 값을 가진 행을 찾으려고 시도합니다. 그런 행이 없으면 결과의 table2
부분을 해당 행에 대해 비워둡니다. 그런 다음 결과에서 일치하는 행이 존재하지 않는 행만 선택하여 선택을 제한합니다. 마지막으로, 결과에서 name
열(table1
에서 존재한다고 확신하는 열)을 제외한 모든 필드를 무시합니다.
이 방법이 모든 경우에 가장 성능이 좋은 방법은 아니지만, 기본적으로 ANSI 92 SQL을 구현하려는 모든 데이터베이스 엔진에서 작동해야 합니다.
다음 중 하나를 수행할 수 있습니다.
SELECT name
FROM table2
WHERE name NOT IN
(SELECT name
FROM table1)
또는
SELECT name
FROM table2
WHERE NOT EXISTS
(SELECT *
FROM table1
WHERE table1.name = table2.name)
이를 달성하는 3가지 방법은 이 질문을 참조하세요.
SELECT name
FROM table2
WHERE name NOT IN
(SELECT name
FROM table1)
실제로 훨씬 효과적입니다. # 39 m, t know why i don& I& # 39 를 기록, 차이는 있지만, 최대한 많은 것을 800k+ 함께 주어진 오토메이티드 게시하기를 2 위. 그냥 내 0.02 달러
SELECT <column_list>
FROM TABLEA a
LEFTJOIN TABLEB b
ON a.Key = b.Key
WHERE b.Key IS NULL;
https://www.cloudways.com/blog/how-to-join-two-tables-mysql/
나를 위해 사용할 수 있는 날카로운
SELECT *
FROM [dbo].[table1] t1
LEFT JOIN [dbo].[table2] t2 ON t1.[t1_ID] = t2.[t2_ID]
WHERE t2.[t2_ID] IS NULL
SELECT temp_table_1.name
FROM original_table_1 temp_table_1
LEFT JOIN original_table_2 temp_table_2 ON temp_table_2.name = temp_table_1.name
WHERE temp_table_2.name IS NULL
The bottom line 은 나쁜거라 변수 이름을 사용할 때 찻입 질문을합니다. 내 com/go/4e6b330a_kr 더 해야 한다. 왜 우리가 필요로 하는 사람이 쉼표 (,) 또는 no 쉼표 및 설명해야 한다.