我有一个数据库,并且数据库内部是带有联接的表。
我的第一个表是cardtests
列仅是id
和name
。
我加入了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/