Ich habe zwei Tabellen:Erhalten Sie Datensätze aus einer Tabelle und einer entsprechenden Tabelle
orders
poid | user | pid | payment_id
1 | 1 | 1 | abc123
2 | 2 | 2 | def345
orders_addon
poaid | user | poid | pid
1 | 1 | 1 | 3
2 | 1 | 1 | 5
One steht für Aufträge, stellen die zweite Addons ein Benutzer seine Bestellung hinzufügen.
Es gibt immer eine Reihe in Bestellungen und es kann vorkommen, dass es keine passenden orders_addon für eine Bestellung gibt.
Ich bin auf der Suche nach einer Abfrage, die übereinstimmende Zeilen aus Bestellungen und orders_addon gibt, wenn es passende gibt.
SELECT Benutzer, pid FROM ... WHERE payment_id = 'abc123'
Sollte Rückkehr
user | pid
1 | 1
1 | 3
1 | 5
Und die gleiche Abfrage sollte nur die Ergebnisse aus der Tabelle Bestellungen zurück, wenn kein passender Datensatz in die Tabelle orders_addon.
SELECT Benutzer, pid FROM ... WHERE payment_id = ‚def345‘
user | pid
2 | 2
Ich rechne damit, dies getan UNION
verwenden werden könnte, aber dann würde ich nicht in der Lage sein, um die Tabellen zu entsprechen, und es wäre worden Problem dar, da der orders_addon Tabelle nicht über einen payment_id
bitte versuchen Sie diese und lassen Sie mich –
Für das erste Beispiel wissen dieses gibt nur 2 Zeilen zurück, das Ergebnis aus der Auftragstabelle fehlt. – maddo7
@ maddo7 aktualisierte Abfrage bitte jetzt überprüfen –