Jika kolom kedua tabel sama, Anda dapat menggunakan UNION
SELECT 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`
EDIT
Baca bagian yang relevan dari manual MySQL pada UNION. Ada cara lain untuk mengungkapkan ini, tetapi ini adalah gaya pilihan saya - harus jelas bagi siapa pun yang membaca bahwa klausa ORDER BY berlaku untuk hasil keduanya sisi UNI. UNION yang ditulis sembarangan - bahkan dengan ORDER BY - mungkin masih meninggalkan hasil akhir dalam urutan yang tidak pasti.
Tujuan PTYPE adalah bahwa kueri ini mengembalikan kolom tambahan yang disebut PTYPE, yang menunjukkan apakah setiap baris individu adalah INVOICE atau PEMBAYARAN... yaitu. yang dari dua tabel itu berasal. Ini tidak wajib, tetapi sering kali berguna dalam serikat