我試圖找出inventory_detail表(訂單號實際上是inventory_header)中的任何訂單,其中load_store或unload_store的值在store_Code中根本不存在extrainfo_stores表中的字段。WHERE NOT EXISTS查詢不起作用
下面的查詢返回一些訂單在哪裏,當我在extrainfo_stores表中查找訂單回來了,我看到確切的值,在該表load_store或unload_store,所以這顯然不工作...
SELECT bh.ord_number, bi.*
FROM inventory_header bh
inner join inventory_detail bi on inventory_id = bh.inventory_id
WHERE NOT EXISTS
(
SELECT null
FROM extrainfo_stores d
WHERE d.ord_number = bh.ord_number
and bi.load_store <> d.store_code
and bi.unload_store <> d.store_code
)
爲什麼要使用SELECT NULL?每個存在的檢查我見過使用「SELECT *」或「SELECT 1」。 – StingyJack
@SingyJack它沒有任何區別。有些人在'EXISTS'上使用'SELECT NULL'來表明它們實際上並沒有檢索任何數據(儘管我更喜歡'SELECT 1') – Lamak
「select null」將在EXIST語句中工作,因爲EXIST語句返回true if結果集中至少有一條記錄。帶有一個唯一字段爲「null」的記錄的結果集仍然是結果集,因此EXIST將返回true。 –