Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Есть данные:
Есть таблица.
1ая таблица - новости
2ая таблица категории новостей.
Связаны они через cat_id.
Есть задача:
Вывести на главной список категорий и у каждой категории по 5 новостей.
Это очень просто сделать, если сначала запросить список категорий, а затем в цикле сделать запрос по 5 новостей для каждой категории. Но это слишком плохо.
Если сделать запрос с left join, то появляется проблема с limit. Если сначала узнать кол-во категорий, а сделать лимит равный "5*кол-во категорий", то в итоге мы можем получить "5*кол-во категорий" новостей одной категории.
Думаю, что тут нужно как-то хитро использовать group by, но не пойму как.
Буду благодарен за советы.
Заранее спасибо.
Неактивен
http://sqlinfo.ru/forum/viewtopic.php?id=1742
Смотреть всю тему до конца.
Неактивен
Спасибо, за ссылку, но я на неё натыкался и не получилось ничего.
Дамп
Неактивен
Тему все же следовало прочесть до конца . Во-первых, надо обязательно сортировать по cats_id, во-вторых, попробуйте не джоинить, а как-то так:
Неактивен
Спасибо, работает!
Неактивен
2Andrey66 - это хорошо ).
Вася, а как у тебя с джоином (без внешней выборки) работать ухитрялось?.. У меня на первом же простейшем примере поломалось.
Неактивен
Никак.
Я или писал без проверки, или попал на частный случай (например, за счет выборки по ключу результат джойна является упорядоченным по нужному полю).
А так, да. Сортировку нужно явно указывать.
Неактивен