|
|
|
| Есть допустим таблица товаров, таблица картинок и комментариев. На 1 товар из таблицы товаров могут быть несколько картинок и комментариев (один к многим). Нужно вывести на одну страницу скажем 10 товаров и по одной картинке и комментарию.
Получается запрос вида
SELECT tovary.id, images.image, comments.comment FROM `tovary` LEFT JOIN `images` ON tovary.id = images.tovar LEFT JOIN `comments` ON tovary.id = comments.tovar LIMIT 0 , 10
|
Все работает кроме лимита. Если у товара нет картинок и комментариев или по одному то выводит список из 10 товаров, скажем вида:
id > image > comment
1 > image1.jpg > text
2 > > text
3 > image2.jpg >
4 > >
......
Но если у товара скажем две картинки или два комментария то запрос выдает результат вида
1 > image1.jpg > text
1 > image2.jpg > text
1 > > text
2 > > text
3 > image2.jpg >
4 > >
.................
Таким образом на страницу выдаст список уже не 10 товаров а 11, 12, ...
Как ограничить выборку из таблиц картинок и комментариев только одного результата используя только один запрос? | |
|
|
|
|
|
|
|
для: Giga
(13.11.2012 в 17:57)
| | Вы хотите все запросить одним запросом? Скорее всего нагрузка на базу данных будет выше, чем если будет выполнено три отдельных запроса (особенно, если под них будут подобраны ключи). | |
|
|
|