Подскажите как подправить запрос

Igor2001

Новичок
Подскажите как подправить запрос

Может кто подскажет как составить запрос, чтоб из таблицы изображений присоединялось поле с минимальным id.

Есть две таблицы:
Таблица новостей, news, с полями: id, anons, text, date
Таблица изображений, image, с полями: id, news_id, file

Для одной новости может быть загружено несколько изображений, если делать следующий запрос, то оно к каждой новости присоединяет все изображения:
SELECT news.id, news.anons, news.date, image.file FROM news
LEFT JOIN image ON news.id = image.news_id
WHERE news.date > '01.01.2001'
ORDER BY news.date DESC

Возможно ли его подправить, чтоб из таблицы изображений присоединялось только одно изображение с минимальным id для каждой новости, если оно есть, не изменяя таблиц?
 

Гриша К.

Новичок
Думаю, что в данном случае можно использовать GROUP BY по полю news_id, но в этом случае file будет извлекаться по среднему значению id.
Чтобы извлекать по минимальному значению, нужно делать два запроса, например 1) Один извлекат мнимальные ИД фотографии(photo.id) для новостей, 2) Другой извлекает по извлеченным ИД фотографий, файл фотографий.
Либо запрос с подзапросом.

У меня например, похожая структура,
для одного товара, может быть несколько фотографий,
на странице списка товаров мне нужно извлеч одну фотографию для товара, я сделал дополнительное поле - флаг фотографии по умолчанию (photo_default).
В вашем случае этот будет например:
IMAGE (id, news_id, file, default)
default - принимает значения 1 (по умолчанию) и 0
В запросе в условии указываете default = 1. В таком случае вы можете выбрать любую фотографию из доступных для новости, которая будет отображаться.
 
Сверху