我正在尝试查找两个用户所在的联赛 (lid)。
这是我的表格:
table 上联赛:
*id* lname
--------------
1 Hard C
3 Fun
5 Crazy
表格匹配:
*userid* *lid*
-----------------
1 1
4 5
1 3
2 1
4 1
4 3
*是主键
match.lid
是 leagues.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
关于mysql select 匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794275/