Pergunta

Eu tenho as seguintes tabelas:

Clube: Club_id | Título | Criado_date | ...

Club_intesect: user_id | Club_id | Acesso

Estou tentando selecionar um número variável de clubes e junto -me ao ID do usuário com o maior acesso nesse clube. Esta pessoa é considerada o proprietário.

Portanto, se o Clube 100 tiver membros A, B, C com acesso 3,4 e 5, respectivamente: quero que a consulta final selecione no 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 |
      ...
Foi útil?

Solução

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)

Não testado, mas você entendeu a ideia

Outras dicas

SELECT * FROM Club WHERE CLUB_ID = (SELECT Club_ID FROM Club_Intersect ORDER BY Access DESC LIMIT 1);

Eu acho que funcionaria para selecionar o clube que você deseja, usando uma consulta SQL aninhada. Você não especificou o que queria nos resultados retornados, porque essa consulta só recuperaria as colunas do clube.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top