我有一个数据库,并且数据库内部是带有联接的表。

我的第一个表是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张卡的所有名称。我将如何做,谢谢。

最佳答案

我认为您需要三个联接:

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仅处理可能未填充一个或多个卡测试列的行。

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

关于php - MySQL:在一个表中多个联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30836728/

10-10 03:59