簡體   English   中英

如何在需要從超級查詢獲得數據的where子句中使用帶where子句的mysql子查詢

[英]How to use mysql subquery with a where clause in a where clause that requires data from the superquery

我要試試這個:

SELECT
    Bestellung.ID BNr,
    RechnAddr Kunde,
    (SELECT
        Name
     FROM `User`
     WHERE ID = Bestellung.SalesPerson) Verkaeufer,
    Clerk Sachbearbeiter,
    (SELECT
         Ort
     FROM `Location`
     WHERE ID = Bestellung.Location) Standort,
    CONCAT_WS('.', LPAD(Day, 2,'0'), LPAD(Month, 2,'0'), Year) Erstelldatum 
FROM `Bestellung`
WHERE
    SalesPerson != ''
AND
    (SELECT COUNT(*) cnt FROM _BestellungsPosition bp
     WHERE bp.OrderID = Bestellung.BNr) = 0

我只希望所有沒有訂單項的訂單,但是mysql告訴我“ where子句中的未知列'Bestellung.BNr'...”我在使用子查詢嗎?

請幫我


編輯:我將以前使用的(偽)查詢更改為真正的查詢,因為我的偽查詢有效,但是具有真實數據的真正查詢卻沒有


edit2:現在我將查詢更改為:

SELECT
    Bestellung.ID BNr,
    RechnAddr Kunde,
    (SELECT
        Name
     FROM `User`
     WHERE ID = Bestellung.SalesPerson) Verkaeufer,
    Clerk Sachbearbeiter,
    (SELECT
         Ort
     FROM `Location`
     WHERE ID = Bestellung.Location) Standort,
    CONCAT_WS('.', LPAD(Day, 2,'0'), LPAD(Month, 2,'0'), Year) Erstelldatum 
FROM `Bestellung` LEFT JOIN _BestellungsPosition bp
WHERE
    SalesPerson != ''
AND
    bp.Order IS NULL

而且它的工作原理...感謝響應者的提示,但是我認為他刪除了答案

edit2:現在我將查詢更改為:

SELECT
    Bestellung.ID BNr,
    RechnAddr Kunde,
    (SELECT
        Name
     FROM `User`
     WHERE ID = Bestellung.SalesPerson) Verkaeufer,
    Clerk Sachbearbeiter,
    (SELECT
         Ort
     FROM `Location`
     WHERE ID = Bestellung.Location) Standort,
    CONCAT_WS('.', LPAD(Day, 2,'0'), LPAD(Month, 2,'0'), Year) Erstelldatum 
FROM `Bestellung` LEFT JOIN _BestellungsPosition bp
WHERE
    SalesPerson != ''
AND
    bp.Order IS NULL

而且它的工作原理...感謝響應者的提示,但是我認為他刪除了答案

您需要指定ID以在子查詢中選擇(或排除),這可能效率不高。 請嘗試以下操作:

SELECT
    ID, Customer, SalesPerson, Clerk, Date
FROM `Order`
WHERE ID NOT IN
    (SELECT DISTINCT OrderID FROM OrderItem);

暫無
暫無

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

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