parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

MySQL: LEFT JOIN - объединение двух таблиц

Kiosuki 04.02.2008 14:07

Всем добрый день.
Существуют некий набор объектов. У каждого объекта может быть несколько фотографий, а может и не быть. Так же, у каждого объекта может быть несколько статей-обзоров, а может и не быть.

Таблицы:
objects: object_id, object_name
images: image_id, image_url, object_id
reviews: review_id, review_text, object_id

Задача: выбрать по заданному ID объекта количество фотографий и количество обзоров.

Ниже приведу пример, как пробывал решать. Если, допустим, у объекта с ID=1 M фотографий (не 0) и N обзоров (не 0), то в результате выходит, что и фотографий и обзоров M*N. Как быть? Не могу сообразить...

select
objects.*,
count(images.image_id) as images_count,
count(reviews.review_id) as reviews_count
from
objects
left join images
on images.object_id=objects.object_id
left join reviews
on reviews.object_id=objects.object_id
where
objects.object_id=1
group by
objects.object_id

Спасибо!