有三个表,我主要想查询事务
User
-----
id
Debit
-----
id
amount
* user_id
create_date
Credit
------
id
amount
* user_id
create_date
所以,我希望获得按日期订购的特定用户的交易,如下所示
$150 1 2014-06-15 <== debit
$200 1 2014-06-16 <===credit
问题是如何查询?我需要一起加入借记和贷记吗?谢谢你的帮助。
答案 0 :(得分:3)
使用UNION ALL
而不是JOIN
,因为您希望credit
和debit
行分开。 如果您想从中获取列,则可以额外加入表User
。
SELECT d.amount, d.create_date, 'debit' transactionType,
u.user_name
FROM Debit d
INNER JOIN User u
ON d.id = u.user_id
WHERE u.user_id = 1
UNION ALL
SELECT c.amount, c.create_date, 'credit' transactionType,
u.user_name
FROM Credit c
INNER JOIN User u
ON c.id = u.user_id
WHERE u.user_id = 1
ORDER BY create_date