Nếu các cột của cả hai bảng giống nhau, bạn có thể sử dụng 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`
CHỈNH SỬA
Đọc phần liên quan của hướng dẫn sử dụng MySQL trên UNIONS. Có nhiều cách khác để diễn đạt điều này, nhưng đây là kiểu ưa thích của tôi - bất kỳ ai đọc cũng phải hiểu rằng mệnh đề ORDER BY áp dụng cho kết quả của cả hai các mặt của CÔNG ĐOÀN. UNION được viết không cẩn thận - ngay cả với ORDER BY - vẫn có thể để lại tập kết quả cuối cùng theo thứ tự không xác định.
Mục đích của PTYPE là truy vấn này trả về một cột bổ sung được gọi là PTYPE, cho biết mỗi hàng riêng lẻ là HÓA ĐƠN hay THANH TOÁN ... tức là. nó đến từ bảng nào. Nó không bắt buộc, nhưng thường có thể hữu ích trong một liên minh