Вложенный запрос SQL
-
27-09-2019 - |
Вопрос
У меня есть следующие таблицы:
Клуб: Club_id | Название |. Create_date |. ...
Club_intesect: user_id | Club_id |. Доступ
Я пытаюсь выбрать переменное количество клубов, и присоединиться к идентификатору пользователя с самым высоким доступом в этом клубе. Этот человек считается владельцем.
Таким образом, если Club 100 имеет члены A, B, C с доступом 3,4 и 5 соответственно: я хочу окончательный запрос выбрать из Club:
Club.Club_ID Club.Title Club.Created_Date Club_Intersect.User_ID
100 | "Test Club" | "Creation Date" | C |
101 | "Test Club 2" | "Creation_Date" | Highest Access User |
...
Решение
SELECT * FROM Club c
JOIN Club_Intesect ci ON ci.Club_ID = c.Club_ID
WHERE ci.Access = (SELECT MAX(Access) FROM Club_Intesect WHERE Club_ID = c.Club_ID)
Не проверено, но вы получаете идею
Другие советы
SELECT * FROM Club WHERE CLUB_ID = (SELECT Club_ID FROM Club_Intersect ORDER BY Access DESC LIMIT 1);
Я думаю, что это будет работать для выбора желаемого клуба, используя вложенный запрос SQL. Вы не уточняли то, что вы хотели в ваших возвращенных результатах, потому что этот запрос будет только извлекать колонны клуба.
Не связан с StackOverflow