Если у вас есть AUTO_INCREMENT
внутри ndxz_media
с именем id
(например), вы можете получить MAX(id)
или MIN(id)
в подзапросе и присоединиться к нему.
Iдумаю, что это работает, потому что MySQL позволяет включать столбцы, не указанные в GROUP BY
, вместе с агрегатом.Здесь это media_file
и media_order
в подзапросе.
SELECT title,
url,
media_file,
media_order
FROM ndxz_objects
JOIN (
SELECT media_ref_id, MIN(media_order), media_file
FROM ndxz_media
GROUP BY media_ref_id
) maxmedia ON ndxz_objects.id = maxmedia.media_ref_id
WHERE etc. etc. etc.
Принимая media_order
как высокое / низкое значение вместо использования теоретического id
, внутренний подзапрос будет выглядеть следующим образом,Все остальное, кроме паренов, не меняется.
SELECT
media_ref_id,
MIN(media_order) AS media_order,
media_file
FROM ndxz_media
GROUP BY media_ref_id, media_file
Сначала запустите один подзапрос.Он должен получить единственные записи.Затем, при помещении в парены, соединение должно работать правильно.