爲簡單起見,假設我有一個表transactions
和id
作爲主鍵。目前只有10與ID表中的行1至10從預定義列表中選擇NOT INK
我已經ID的列表:{9,10,,}。該列表不存儲在數據庫中。
我想查詢不在transactions
表中的ID的數據庫。在上面的情況下,我想得到11,12。
什麼是最好的方式來寫這個查詢?
目前我只是查詢SELECT * FROM transactions WHERE id IN (9,10,11,12)
。並在代碼中做我的交集。我想知道我是否可以在SQL中一步完成所有工作。
創建一個包含要匹配的id值的表格。使用該表作爲左連接的外部表。戈登的答案和我的一樣。 – shawnt00 2015-02-09 15:16:41
爲什麼不'SELECT * FROM transactions where id not in(9,10,11,12)'? – MrTux 2015-02-09 15:17:17
因爲您要選擇的數據不是表中可用的數據。因爲它不存在,你永遠不會得到11或12。 – shawnt00 2015-02-09 15:18:11