我有一张桌子上有人(人物,名字),另一张桌子有营地(campid,头衔)和第三张桌子有营地参与(id,personid,campid)。
现在,对于一个特定的训练营,我需要参加当前训练营的所有人参加所有其他训练营的名单。
但我不知道如何加入这些表格。我看了很多其他的例子,但我似乎无法从那些中得到任何灵感......
答案 0 :(得分:0)
这应该有效:
SELECT *
FROM PERSONS AS D INNER JOIN CAMP_PARTICIPATIONS AS E ON D.PERSONID = E.PERSONID
INNER JOIN CAMPS AS F ON F.CAMPID = E.CAMPID
WHERE F.CAMPID <> [your_camp] AND A.PERSONID IN (
SELECT A.PERSONID
FROM PERSONS AS A INNER JOIN CAMP_PARTICIPATIONS AS B ON A.PERSONID = B.PERSONID
INNER JOIN CAMPS AS C ON C.CAMPID = B.CAMPID
WHERE C.CAMPID = [your_camp] )
答案 1 :(得分:0)
select persons.*,participations.*,camps.* from persons left join participations
on participations.personid=persons.personid
left join camps on camps.campid=participations.campid
where camp.campid=1;
现在你可以在where子句中更改campid并在select子句中放置你想要的列名