SELECT *
FROM fabric_restock AS fabr
LEFT JOIN fabric_po AS fabpo
ON fabpo.fab_id = fabr.fab_id
WHERE
fabr.fab_id NOT IN (
SELECT fabpo.fab_id
FROM
fabric_po fabpo
WHERE
fabpo.status <= 1
AND
fabpo.fab_id IS NOT NULL
)
AND
fabr.restock_ten <= fabpo.qty
// die komplette Abfrage null zurückgibt, wenn Unterabfrage gibt keine Zeilen oder gibt nullsNicht IN-Operator in mysql gibt
Wie kann ich dieses Problem beheben?
Es sollte stattdessen zurückgeben alle den Datensatz aus äußeren Abfrage, wenn Unter Abfrage keine Datensätze zurückgibt
bearbeiten: Original query:
SELECT *
FROM fabric_restock AS fabr
LEFT JOIN fabric_po AS fabpo ON fabpo.fab_id = fabr.fab_id
WHERE
fabr.fab_id NOT IN (
SELECT fabpo.fab_id
FROM
fabric_po fabpo
JOIN
fabric_challan fabchallan
ON
fabpo.po_num = fabchallan.po_num
WHERE
fabchallan.challan_num
NOT IN (SELECT challan_num FROM fabric_grn)
AND
fabpo.status <= 1
)
AND
fabr.restock_ten <= fabpo.qty
Beispieldaten:
# fab_id, fabric_mother_id, qty_mother, cluster, qty, cf_thirty, cf_ten, cf_three, cf_cluster, sellout_thirty, sellout_ten, sellout_three, num_good_sku, num_coll, num_collection_p, num_sale, new_cf, percentile, restock_thirty, restock_ten, restock_three, status, num_new, parent, lace_type, po_id, po_num, fab_id, vendor_code, color_code, qty, estimated_price, po_date, arrival_date, estimated_date, composition, material, type, inType, status, gsm, notes, image, approveStatus, approve_date, shrinkage, fabric_mother_id, qty_type, main_construction, place_order_date, width, vendor_comments, email_send, wash, brand
FAB1001, SBL104, 10.00, cluster, 10.00, 10.00, 10.00, 10.00, 10, 10.00, 10.00, 10.00, 10, 10, 10, 10, 10.00, 10.00, 10.00, 10.00, 10.00, 0, 10, 1, Washed, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
FAB1002, SBL101, 20.00, cluster1, 20.00, 20.00, 20.00, 20.00, 20, 20.00, 20.00, 20.00, 20, 20, 20, 20, 20.00, 20.00, 20.00, 20.00, 20.00, 0, 20, 2, Bleached, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
FAB1003, SBL102, 30.00, cluster2, 30.00, 30.00, 30.00, 30.00, 30, 30.00, 30.00, 30.00, 30, 30, 30, 30, 30.00, 30.00, 30.00, 30.00, 30.00, 0, 30, 3, RFD, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
FAB1004, SBL103, 40.00, cluster3, 40.00, 40.00, 40.00, 40.00, 40, 40.00, 40.00, 40.00, 40, 40, 40, 40, 40.00, 40.00, 10.00, 10.00, 10.00, 0, 40, 4, Dyed, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
fabpo Tabelle: leer im Moment
Obligatorisch [Gefahren der Not In] (http://stackoverflow.com/a/32175659) – Drew
@Drew: Ich verstehe, dass aber nicht wissen, wie diese bestimmte Abfrage mit nicht ersetzen VORHANDEN –
Können Sie einige Beispieldaten und das erwartete Ergebnis? Ich vermutete, was Sie versuchen zu tun, aber jetzt bin ich nicht sicher, ob ich es richtig gemacht habe – Philipp