Wenn die Spalten beider Tabellen gleich sind, können Sie eine UNION
verwendenSELECT X.*
FROM ( SELECT `id`,
`userID`,
'INVOICE' AS PTYPE
`amount`,
`date`
FROM `invoices`
WHERE {$userID} = userID
UNION
SELECT `id`,
`userID`,
'PAYMENT' AS PTYPE
`amount`,
`date`
FROM `payments`
WHERE {$userID} = userID
) X
ORDER BY X.`date`
BEARBEITEN
Lesen Sie den entsprechenden Abschnitt des MySQL-Handbuchs auf GEWERKSCHAFTEN. Es gibt andere Möglichkeiten, dies zu formulieren, aber das ist mein bevorzugter Stil - es sollte jedem, der es liest, klar sein, dass die ORDER BY-Klausel auf das Ergebnis von beiden angewendet wird Seiten der UNION. Eine nachlässig geschriebene UNION - selbst mit einem ORDER BY - kann die endgültige Ergebnismenge immer noch in unbestimmter Reihenfolge belassen.
Der Zweck des PTYPE besteht darin, dass diese Abfrage eine zusätzliche Spalte namens PTYPE zurückgibt, die angibt, ob jede einzelne Zeile eine RECHNUNG oder eine ZAHLUNG ist ... dh. aus welcher der beiden Tabellen es stammt. Es ist nicht obligatorisch, kann aber innerhalb einer Gewerkschaft oft nützlich sein