2010-08-14 4 views
0

У меня есть 2 таблицыпомощь при подсчете с левой присоединиться к

  • первая таблица под названием услуги имеет id_service, имя, дату.
  • второй стол называется services_images имеет id_img, img_name, id_service.

То, что я хочу сделать, это получить список услуг с рядом называется NUM_IMAGES, который считает, сколько изображений есть за услугу.

Я попробовал этот

SELECT COUNT(services_images.id_img) as num_images, services.* FROM services 
LEFT JOIN services_images ON (services_images.id_service = services.id_service) ORDER BY service.id_service 

он не работает, и я не знаю, как это исправить. Это вернет только ОДИН сервис (первый id_service: 1) с num_images количество всех строк в services_images! Даже если изменение «services_images.id_service = services.id_service» на «services_images.id_service = 2», он показывает первый идентификатор! Поэтому эти правила даже не рассматриваются.

Благодаря

ответ

1

Добавление предложения GROUP BY следует сделать трюк

SELECT COUNT(services_images.id_img) as num_images, services.* 
FROM services 
LEFT JOIN services_images ON (services_images.id_service = services.id_service) 
GROUP BY service.id_service 
ORDER BY service.id_service 

Это будет группировать строки по службе и агрегации счета даст вам количество изображений на службу.

Смежные вопросы