1

私はこれを試してみるつもりです:

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

そしてそれはうまくいきます...このヒントを持ったレスポンダーのおかげですが、彼は彼の答えを削除したと思います

4

2 に答える 2

1

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

そしてそれは機能します...このヒントを提供してくれたレスポンダーのおかげで、彼は答えを削除したと思います

于 2013-07-29T13:12:30.033 に答える
0

サブクエリで選択(または除外)するIDを指定する必要があり、非効率的である可能性があります。以下でこれを試してください:

SELECT
    ID, Customer, SalesPerson, Clerk, Date
FROM `Order`
WHERE ID NOT IN
    (SELECT DISTINCT OrderID FROM OrderItem);
于 2013-02-26T20:28:41.900 に答える