Ich habe die folgenden TabellenMySQL Union und JOIN
purchase_order item
------------------ ------------
id (PK) id (PK)
deleted deleted
name name
purchase_order_id (FK)
Wie kann ich eine Liste aller Elemente zurück, die zu einem nicht gelöscht, nicht-null PURCHASE_ORDER verbunden sind, und alle purchase_orders, die keinen Artikel verlinkt zu ihnen, entweder gelöscht oder nicht.
Eg Beispiel Tabellen
PURCHASE_ORDER
id name deleted
---------------------------
1 Big Sale 0
2 Other Sale 1
3 Empty Sale 0
Artikel
id name deleted purchase_order_id
----------------------------------------------
1 Fruit 1 1
2 Bread 0 1
3 Water 0 2
Die richtige Abfrage gibt mir diese:
po_id name item_id name
------------------------------------
1 Big Sale 2 Bread
3 Other Sale NULL NULL
Edit: das ist, wo ich habe zu aber der Profi blem ist besagt, dass i.deleted = 0, stoppt er alle Zeilen, die an einem Punkt kommen nicht von der Rückkehr
SELECT po.id, po.name, i.id, i.name
FROM purchase_order po
LEFT JOIN item i ON i.purchase_order_id=po.id
WHERE po.deleted = 0 AND i.deleted = 0
Also, was Sie versucht haben, – RiggsFolly
Added die Abfrage – Alasdair
Verschieben Sie die 'AND ...' zu kurz vor der 'WHERE ...' – Strawberry