Вопрос

У меня есть следующие таблицы:

Клуб: 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. Вы не уточняли то, что вы хотели в ваших возвращенных результатах, потому что этот запрос будет только извлекать колонны клуба.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top