2015-05-25 73 views
1

我有三個表MySQL:加入聯合表

問題 ID | question_name

此表列出了一些問題,每個問題都有id。

位置 ID | LOCATION_NAME

這個問題列出了多個位置,每個位置都有其ID

Question_Location ID | question_id | location_ID

此問題根據密鑰將問題與位置進行匹配。

我該如何創建一個表格,提供給我: question_name | location_name

其中每個問題都與其位置匹配,但不是看到ID,而是看到了question_name和location_name。

我可以加入位置和question_location表以及question_location表和位置表,但我沒有設法將它們放在一起,以便得到所述的輸出。

+0

如果弗拉基米爾·或自己幫你請你將它們標記爲答案。 「Select q.Question_Name」中的 –

回答

0
Select q.Question_Name, l.location_name 
from Question q 
Inner join Question_Location ql on ql.Question_id = q.question_id 
inner join Location l on l.location_id = ql.location_id 

假設每個問題都有一個位置而不是null,如果是這種情況,那麼在位置連接上使用左連接會更好。

+0

「q」是指什麼? – StnBnu

+0

q是一個別名,注意在我稱之爲問題表的地方旁邊放置一個q。這是如此,當你有多個表我查詢你可以通過別名引用它。 –

0

,您可以嘗試:

SELECT q.question_name, l.location_name 
FROM Question_Location ql 
LEFT JOIN Question q on ql.question_id = q.ID 
LEFT JOIN Location l ON ql.location_ID = l.ID 
; 
+0

當你寫「q.question_name」時,「q」與什麼關係? – StnBnu

+0

它是表問題的別名。 –