savit
Новичок
left join ... необходимо ограничить объединение
Всем привет!
есть таблица с объявлениями пользователей
msg_id | msg_title | msg_descr | msg_cid | msg_postdate
есть таблица с фотографиями связанными с объявлениями (кол-во фотографий для каждого объявления не ограничено)
photo_id | photo_file | owner_id
при выводе списка объявлений необходимо отражать заголовок объявления + одну картунку (именно одну а не все, все это уже при просмотре конкретного объявления)
сейчас делаю выборку с помощью примерно такого запроса:
select ads.msg_id, ads.msg_title, ads.msg_descr, photos.photo_file from ads left join photos on ads.msg_id=photos.owner_id where msg_cid=9 order by msg_postdate desc
и получаю примерно следующее:
1 | заголовок1 | /img/foto1.jpg
1 | заголовок1 | /img/foto2.jpg
1 | заголовок1 | /img/foto3.jpg
1 | заголовок1 | /img/foto4.jpg
2 | заголовок2 | /img/foto5.jpg
2 | заголовок2 | /img/foto6.jpg
..............
далее уже обрабатываю этот массив, что с моей точки зрения совсем не удобно =(
а хотелось бы чтобы из таблицы с фотографиями выбиралось не более одной строки (одного фото) для каждого объявления т.е на выходе хотелось бы иметь
1 | заголовок1 | /img/foto1.jpg
2 | заголовок2 | /img/foto5.jpg
...........
реально ли сделать это средствами SQL ? или все же необходимо обрабатывать массив (как сейчас и делается) ?
Всем привет!
есть таблица с объявлениями пользователей
msg_id | msg_title | msg_descr | msg_cid | msg_postdate
есть таблица с фотографиями связанными с объявлениями (кол-во фотографий для каждого объявления не ограничено)
photo_id | photo_file | owner_id
при выводе списка объявлений необходимо отражать заголовок объявления + одну картунку (именно одну а не все, все это уже при просмотре конкретного объявления)
сейчас делаю выборку с помощью примерно такого запроса:
select ads.msg_id, ads.msg_title, ads.msg_descr, photos.photo_file from ads left join photos on ads.msg_id=photos.owner_id where msg_cid=9 order by msg_postdate desc
и получаю примерно следующее:
1 | заголовок1 | /img/foto1.jpg
1 | заголовок1 | /img/foto2.jpg
1 | заголовок1 | /img/foto3.jpg
1 | заголовок1 | /img/foto4.jpg
2 | заголовок2 | /img/foto5.jpg
2 | заголовок2 | /img/foto6.jpg
..............
далее уже обрабатываю этот массив, что с моей точки зрения совсем не удобно =(
а хотелось бы чтобы из таблицы с фотографиями выбиралось не более одной строки (одного фото) для каждого объявления т.е на выходе хотелось бы иметь
1 | заголовок1 | /img/foto1.jpg
2 | заголовок2 | /img/foto5.jpg
...........
реально ли сделать это средствами SQL ? или все же необходимо обрабатывать массив (как сейчас и делается) ?