2015-06-15 470 views
0

我有一個數據庫,裏面的數據庫是連接表。Mysql:多個連接在一個表中

我的第一張表是cardtests只有idname列。 我參與了tests我的專欄是:

card1_id | card2_id | card3_id

其中它們等於cardtests.id。

我sqlquery的是

SELECT cardtests.name 
    FROM tests 
    JOIN cardtests 
    ON tests.card1_id = cardtests.id 
    ON tests.card2_id = cardtests.id 
    ON tests.card3_id = cardtests.id 

但問題是,他們沒有工作只是想顯示的3張卡的所有名稱。我將如何做到這一點,謝謝。

回答

1

我想你要三聯接:

Select ct1.name, ct2.name, ct3.name 
from tests t left join 
    cardtests ct1 
    on t.card1_id = ct1.id left join 
    cardtests ct2 
    on t.card2_id = ct2.id left join 
    cardtests ct3 
    on t.card3_id = ct3.id; 

left join簡單地處理這樣的情形可能不會被填充的一個或多個卡的測試柱行。

雖然通常有多個具有相同名稱的列,只能通過數字進行區分,這表示您應該使用單獨的表格,每個測試和卡片使用一行。

+0

非常感謝你很多muahh。 : - * – QWERTY

1
Select cardtests.name 
from tests 
join cardtests on cardtests.id in (tests.card1_id, tests.card2_id, tests.card3_id)