我必须使用表格,表格帐户和表格实体,信用卡和借记卡在表格帐户中是number = id, 我想写一个查询,结果是信用卡号的名称和借方号码的名称以及表格实体的日期和价值
表中的一些数据:
table entities:
id credit debit value date
1 100 101 5000 01/01/2014
table accounts:
id name
100 Mark
101 Jone
来自我的数据库的一些数据。所有我需要一个查询来显示这个结果:
1, Mark, Jone, 5000, 01/01/2014
答案 0 :(得分:1)
您需要加入帐户表两次(一次是信用名称,一次是借记名称):
SELECT
e.id,
credit_account.name AS CreditName,
debit_account.name AS DebitName,
e.value,
e.date
FROM entities AS e
JOIN accounts AS credit_account ON e.credit = credit_account.id
JOIN accounts AS debit_account ON e.debit = debit_account.id
此查询产生此输出:
id CreditName DebitName value date
----------- -------------------- -------------------- ----------- ----------
1 Mark Jone 5000 2014-01-01
假设entity表中每行的credit和debit列都有一个值。如果其中一个可能丢失,您可能希望使用LEFT JOIN
代替在缺少值的列中获取空值。