簡體   English   中英

Mysql - 鍵的列表不在subselect中

[英]Mysql - WHERE a list of keys is not in subselect

我有這樣的查詢:

SELECT DISTINCT(obt.oid) AS oid, o.borrower_email
FROM `order_borrower_tracker` obt 
LEFT JOIN `orders` o ON obt.oid=o.oid
WHERE obt.date_acknowledged_edelivery = 0 
AND 18 NOT IN 
    (SELECT DISTINCT(new_status) AS new_status 
    FROM `order_status_history` 
    WHERE oid=obt.oid)

哪個有效,但現在我需要更新這個查詢,這樣不僅“18”不在subselect中,而且還有其他幾個數字....類似於

SELECT DISTINCT(obt.oid) AS oid, o.borrower_email
FROM `order_borrower_tracker` obt 
LEFT JOIN `orders` o ON obt.oid=o.oid
WHERE obt.date_acknowledged_edelivery = 0 
AND (18,27,29,41,53) NOT IN 
    (SELECT DISTINCT(new_status) AS new_status 
    FROM `order_status_history` 
    WHERE oid=obt.oid)

但顯然“(18,27,29,41,53)NOT IN”不起作用。

實現這一目標的好方法是什么? 不為每個數字鍵入AND

使用LEFT JOIN和IS NULL的技巧來查找沒有列出狀態的任何記錄的訂單:

SELECT DISTINCT(obt.oid) AS oid, o.borrower_email
FROM `order_borrower_tracker` obt 
LEFT JOIN `orders` o 
    ON obt.oid=o.oid
LEFT JOIN `order_status_history` h
    ON h.oid=obt.oid AND h.new_status IN (18,27,29,41,53)
WHERE obt.date_acknowledged_edelivery = 0 
AND h.oid IS NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM