我有一个包含人员的表(personid,name),另一个包含营地的表(campid,title)和第三个包含营地参与的表(id,personid,campid)。
现在,对于给定的营地,我需要一份包含当前营地所有参与者的所有其他营地的列表。
但我不知道如何连接这些表。我看过很多其他例子,但我似乎无法真正从这些例子中获得任何灵感......
最佳答案
这应该有效:
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] )
关于MySQL:如何合并三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641692/