我有一个数据库,内部数据库是带连接的表。
我的第一个表格是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张牌的所有名字。我将如何做到这一点,谢谢。
答案 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
只处理可能无法填充一个或多个卡片测试列的行。
但是,通常,具有相同名称的多个列,仅用数字区分,表示您应该使用单独的表,每个测试和卡一行。