|
|
|
|
|
для: Anatoly_ua
(02.06.2008 в 16:06)
| | И еще один апдейт :))
Оказалось, что если poz одинаковые, то нужно еще Group добавить:
SELECT news.*, pics.pic_name FROM news
LEFT JOIN pics ON news.id = pics.news_id AND pics.poz = (
SELECT min(poz)
FROM pics WHERE news.id = pics.news_id
)
GROUP BY news.id;
|
Вроде бы так работает как надо... | |
|
|
|
|
|
|
|
для: Anatoly_ua
(02.06.2008 в 16:06)
| | :) | |
|
|
|
|
|
|
|
для: Root
(22.05.2008 в 17:06)
| | Только нужно чуть добавить:
SELECT news.*, pics.pic_name FROM news
LEFT JOIN pics ON news.id = pics.news_id AND pics.poz = (
SELECT min(poz)
FROM pics WHERE news.id = pics.news_id
);
|
| |
|
|
|
|
|
|
|
для: Root
(22.05.2008 в 17:06)
| | Спасибо! :) Это, пожалуй, ближе к истине... | |
|
|
|
|
|
|
|
для: Anatoly_ua
(22.05.2008 в 15:38)
| |
SELECT news.*, pics.pic_name FROM news
LEFT JOIN pics ON pics.poz = (
SELECT min(poz)
FROM pics WHERE news.id = pics.news_id
);
|
| |
|
|
|
|
|
|
|
для: Root
(22.05.2008 в 14:44)
| | ого... Спасибо. Попробую | |
|
|
|
|
|
|
|
для: Anatoly_ua
(22.05.2008 в 13:41)
| | как-то так :-/
SELECT news.*, pics.pic_name FROM news
LEFT JOIN
(SELECT pics.news_id as pid, min(poz) as minpos
FROM pics GROUP BY pics.news_id
) AS p ON news.id = p.pid
LEFT JOIN pics ON pics.poz = p.minpos;
|
| |
|
|
|
|
|
|
| есть две таблицы:
Первая NEWS с полями:
id
date
content
Вторая PICS с полями:
news_id
poz
pic_name
Т.е. каждой новости соответствует несколько (или ни одной) картинок. Причем картинки идут в заданном порядке (за что отвечает поле poz в PICS, но значения в этом поле произвольные, т.е. может быть 0, 1, 2..., а может 10, 20, 30 и т.п.)
Можно ли одним запросом получить массив вида
NEWS.date, NEWS.content, PICS.pic_name
где PICS.pic_name соответствует картинке из всех возможных для определенного news_id с мин. значением в поле poz (или пустое значение, если такой картинки нет)? | |
|
|
|
|