我有两张桌子。
在用户表中我有
user_id
user_name
user_email
user_address
在发票表中我有
invoice_id
invoice_to_user_id
invoice_by_user_id
invoice_date
在发票表中,我有两个来自用户表的外键
invoice_to_user_id
2. invoice_by_user_id
现在我想进行单一查询,获取两个外键的用户信息.g。,
1. invoice_to_user_name
2. invoice_to_user_email
3. invoice_to_user_address
4. invoice_by_user_name
5. invoice_by_user_email
6. invoice_by_user_address
提前致谢。
答案 0 :(得分:1)
SELECT t.user_name AS invoice_to_user_name,
t.user_email AS invoice_to_user_email,
t.user_address AS invoice_to_user_address,
b.user_name AS invoice_by_user_name,
b.user_email AS invoice_by_user_email,
b.user_address AS invoice_by_user_address
FROM invoice i
LEFT JOIN user t ON t.user_id = i.invoice_to_user_id
LEFT JOIN user b ON b.user_id = i.invoice_by_user_id
答案 1 :(得分:0)
将发票表与用户表连接两次,一次在invoice_to_user_id上,然后再次在invoice_by_user_id上,例如
SELECT
INV.invoice_id,
US1.user_name AS invoice_to_user_name,
US1.user_email AS invoice_to_user_email,
US1.user_address AS invoice_to_user_address,
US2.user_name AS invoice_by_user_name,
US2.user_email AS invoice_by_user_email,
US2.user_address AS invoice_by_user_address
FROM
[invoice] INV
INNER JOIN [user] US1 ON INV.invoice_to_user_id = US1.user_id
INNER JOIN [user] US2 ON INV.invoice_by_user_id = US2.user_id