MySQL:如何组合三个表

时间:2015-06-04 10:41:46

标签: mysql join

我有一张桌子上有人(人物,名字),另一张桌子有营地(campid,头衔)和第三张桌子有营地参与(id,personid,campid)。

现在,对于一个特定的训练营,我需要参加当前训练营的所有人参加所有其他训练营的名单。

但我不知道如何加入这些表格。我看了很多其他的例子,但我似乎无法从那些中得到任何灵感......

2 个答案:

答案 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子句中放置你想要的列名

相关问题