Помогите с запросом, туплю

mess

Новичок
Помогите с запросом, туплю

Вот такой запрос:
SELECT g.name, d.id, d.size, d.link FROM games AS g, demos AS d WHERE g.id = d.game_id ORDER BY d.id

Выводятся имена игр из таблицы games и размер и ссылка из таблицы demos.
Мне нужно чтобы выводилось только по одной демке на игру, не повторялись строки с одинаковым g.name.
Как будет выглядеть запрос?
 

mess

Новичок
ERROR: Attribute d.id must be GROUPed or used in an aggregate function

В том то и дело что не так просто.
Если взять например в функцию max(d.id) и группировать по имени то проходит. Но только если выбирать эти 2 значения без size и link.
 

mess

Новичок
просьба написать запрос, он то простой.
в джоин не разбираюсь :(
 

mess

Новичок
спасибо

-~{}~ 19.01.08 16:59:

и толку что заджойнил, то же самое полчается. Имена повторяются...
SELECT g.name, d.id, d.size, d.link FROM games AS g INNER JOIN demos AS d ON g.id = d.game_id ORDER BY d.id DESC LIMIT 10
 

berkut

Новичок
теперь посмотри на 4-й пост. в гугле найди или прямо на сайте mysql.com шо это и как прикрутить
 

mess

Новичок
Ну тогда по идее получается так:
SELECT g.name, max(d.id) AS maxid, d.size, d.link FROM demos AS d INNER JOIN games AS g ON g.id = d.game_id GROUP BY g.name ORDER BY maxid DESC LIMIT 10

Но тут уже ошибка: ERROR: Attribute d.size must be GROUPed or used in an aggregate function

Как его то группировать? и d.link

-~{}~ 19.01.08 17:36:

без d.size и d.link работает нормально. но как их прилепить? :)
 

mess

Новичок
тогда такое выдает:
ERROR: Attribute d.id must be GROUPed or used in an aggregate function
 

berkut

Новичок
перевести никак? на сайте муськи есть туториал, прочти на досуге. а помогать тебе тыкать пальцем в небо, я думаю больше никто не будет. или в форум "работа"
 

mess

Новичок
блин тут может в одном слове дело. Я щас сильно занят чтобы изучить и переводить, можно было б и подсказать.
 

mess

Новичок
Давай уже со всех тогда вопросов здесь собирать бабки. А так же за посылку на "работу"

-~{}~ 19.01.08 19:17:

Ладно, получилось так:
SELECT g.name, d.id, d.size, d.link FROM games AS g INNER JOIN demos AS d ON g.id = d.game_id WHERE d.id IN (SELECT MAX(d1.id) FROM demos AS d1 WHERE d1.game_id = g.id) ORDER BY d.id DESC LIMIT 10

Такой запрос работает. :)
 
Сверху