2010-08-14 40 views
0

我有2个表帮助与左计数加入

  • 1台名为服务id_service日期
  • 第二台名为services_imagesid_imgimg_nameid_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”,仍然会显示第一个ID!所以这个规则甚至没有考虑。

感谢

回答

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 

这会将您的行通过服务和计数聚集会给你每次的服务图像的数量。