Я пытаюсь найти лигу (крышку), где два пользователя находятся отдельно.
Вот мои таблицы:
Таблица лиг:
*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, но я думаю, что более эффективно выполнить один запрос.