2013-04-09 42 views
0

非現有數據我有一個表具有一個id列,表2具有只選擇在另一個表

我要選擇僅在表2的ID中不存在在表中的一個相同的列。如何選擇那個?

回答

1

使用LEFT JOIN加入兩個表。

SELECT a.* 
FROM table2 a 
     LEFT JOIN table1 b 
      ON a.ID = b.ID 
WHERE b.ID IS NULL 

爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:

+0

爲什麼b.ID爲NULL? – 2013-04-09 14:53:25

+0

當'a.ID不存在'時,'b.ID爲NULL',這就是你想要的,嘗試':)' – 2013-04-09 14:54:07

+0

@Zaski當LEFT JOIN執行且沒有匹配的記錄時,b.ID爲NULL (根據ON子句)在連接表中。 a.ID存在,但b中沒有匹配的b.ID。 – pseudocoder 2013-04-09 14:55:19

0

這是一種使用子查詢和IN的方法。已經提到的LEFT JOIN方法可能更有效,但IMO此方法具有更多的語義,因此更易於閱讀。

SELECT t2.ID 
FROM table2 t2 
WHERE t2.ID NOT IN 
(
    SELECT t1.ID 
    FROM table1 t1 
)