SQL соединение и групповая проблема - PullRequest
1 голос
/ 22 января 2011

Сначала скажу, что я использую mySQL, и мой единственный способ доступа к базе данных - через phpMyAdmin, поскольку это для веб-сайта.

Сначала у меня есть таблица таких пользователей (table1):

user_id | name
--------------
      1 | Mike
      2 | Johny
      3 | Bob

и другая таблица результатов сезона (таблица2):

user_id | season | result
-------------------------
      1 | 2009   |     10
      1 | 2010   |      8
      1 | 2011   |      5
      2 | 2009   |      7
      2 | 2010   |      3
      3 | 2009   |      1

А теперь я хочу узнать имя пользователя и результаты его прошлого сезона, так что-то вроде этого:

user_id | name | season | result
--------------------------------
      1 | Mike |   2011 |      5
      2 | Johny|   2010 |      3
      3 | Bob  |   2009 |      1

Самое близкое, к чему я пришел, было

SELECT * FROM table1 INNER JOIN table2 ON table1.user_id = table2.user_id GROUP BY id

Но я не могу представить, что хочу новый сезон, и он использует только случайный. У кого-нибудь есть идеи, как это сделать?

С наилучшими пожеланиями, Rok

Ответы [ 2 ]

4 голосов
/ 22 января 2011
SELECT *
FROM table1, table2,
(SELECT user_id AS lUserid, MAX(season) AS lSeason FROM table2 GROUP BY user_id) AS lTable2
WHERE table1.user_id = table2.user_id
AND table2.user_id = lTable2.lUserid
AND table2.season = lTablle2.lSeason
0 голосов
/ 22 января 2011

Вы пытались заказать их по столбцу Сезон?

SELECT * FROM table1 INNER JOIN table2 ON table1.user_id = table2.user_id GROUP BY id ORDER BY season DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...