SELECT `photo` FROM `dat_profile_photo` ORDER BY `date` DESC LIMIT 1, то всё работает отлично, если же уже такой запрос, то почему то не берётся та единственная фотография, которая последняя по дате, хотя и прописал сортировку по дате в обратном порядке.
SELECT a.`id` , a.`login` , a.`age` , b.`photo` , b.`date`
FROM `dat_profile` a
LEFT JOIN `dat_profile_photo` b ON b.`id_parent` = a.`id`
WHERE b.`id_parent` IS NULL OR b.`id_parent` IS NOT NULL
GROUP BY a.`id`
ORDER BY a.`lastactive` DESC , b.`date` DESC
LIMIT 3 , 6
Чтобы не путались с лимитом, во втором запросе достаётся 3 профиля, к ним из соседней таблицы должны присоедениться по фотографии (последней по дате).
Спустя 2 часа, 51 минута, 28 секунд (13.01.2011 - 09:24) linker написал(а):
Потому что сортировка происходит по уже сгруппированным данным.
Спустя 8 часов, 51 минута, 14 секунд (13.01.2011 - 18:15) inpost написал(а):
linker
А как сделать сортировку до группирования в этом запросе?
А как сделать сортировку до группирования в этом запросе?
Спустя 6 минут, 14 секунд (13.01.2011 - 18:21) gidrosoldat написал(а):
У меня похожая проблема в соседнем поле, если найдете ответ черкните ради Бога ))
Спустя 10 дней, 20 часов, 31 минута, 42 секунды (24.01.2011 - 14:53) gidrosoldat написал(а):
Цитата (inpost @ 13.01.2011 - 15:15) |
linker А как сделать сортировку до группирования в этом запросе? |
Не уверен на сто процентов, но может такой фокус удасться. Сортировку делать не под конец, а отсортировать таблицу до выборки данных.
Например:
SELECT a.`id` , a.`login` , a.`age` , b.`photo` , b.`date` FROM (
(SELECT * FROM `dat_profile` ORDER BY `date` DESC) а ....
Увы, на работе мускула нету (я не програмист совсем), не могу проверить ...
_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).