我试图找到两个用户分开的联赛(盖)。

这是我的桌子:

表联赛:

*id*    lname
--------------
 1      Hard C
 3      Fun
 5      Crazy


表匹配:

*userid*   *lid*
-----------------
   1         1
   4         5
   1         3
   2         1
   4         1
   4         3


*是主键

match.lidleagues.id的外键(用户不能两次成为同一联盟的一部分)

这是我到目前为止(开始)的内容:

SELECT t1.lid, t2.lname
FROM match t1
JOIN leagues t2 on t1.lid = t2.id


到目前为止,我设法加入了两个表并获得了名称。我的最终目标是显示lid的两个用户属于同一联盟的位置,例如userid 1和4。

userid 1是lid 1和3的成员

userid 4是lid 5、1,和3的成员

两个用户都在联赛(lid)1和3中相遇

所以我需要一个查询,仅显示两个用户相遇的联赛。像这样:

lid    lname
--------------
 1      Hard C
 3      Fun


由于userid 1和4在联赛1和3中相遇,因此结果应表明这一点。我可以为每个用户运行两个查询,并通过php检查两个用户都遇到了哪些联赛,但是我认为运行一个查询更有效。

最佳答案

SELECT m1.lid, l.lname FROM
`match` m1, `match` m2, leagues l
WHERE m1.lid = m2.lid AND m1.lid = l.id
  AND m1.userid = 1
  AND m2.userid = 4

10-08 16:32