Mysql:在一个表中多个连接

时间:2015-06-15 02:53:45

标签: php 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张牌的所有名字。我将如何做到这一点,谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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只处理可能无法填充一个或多个卡片测试列的行。

但是,通常,具有相同名称的多个列,仅用数字区分,表示您应该使用单独的表,每个测试和卡一行。