2014-03-04 122 views
0

我有两个表。mysql表有两个来自另一个同一表的外键


  1. 发票
  2. 用户

在user表中我有

user_id 
user_name 
user_email  
user_address 

在发票表我有

invoice_id 
invoice_to_user_id 
invoice_by_user_id 
invoice_date 

在发票表中,我有两个来自用户表的外键。
1. invoice_to_user_id
2. invoice_by_user_id

现在我想做出让外国keys.eg的用户信息单号查询,
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

你想要什么作为输出? – SagarPPanchal

+0

加入'user'表格2次 –

+0

可以显示你已经完成了什么和你的结果 –

回答

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 
+0

感谢Adam it works – Shahabi

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 
相关问题