2014-03-04 118 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 
相關問題