2012-02-13 44 views
0

我有我的数据库表中的结果如下:PHP/MySQL的 - 在查询中的计数项目

enter image description here

查询:

SELECT 
service_titles.user_id, service_titles.slide_id, service_titles.name as title_name ,service_names.name as service_name 
FROM service_names 
INNER JOIN service_titles ON service_names.title_id = service_titles.id 

所以需要采取什么措施是:

  • 如果用户有2个独特的服务标题, ÑSERVICE_NAMES该标题的最大数目将是
  • 如果用户具有1页服务的标题,SERVICE_NAMES该标题的最大数目将是

我将使用PHP对于所有的编码,但我想知道如何去做这件事。我需要一种方法来计算该用户和幻灯片有多少个唯一的service_titles,然后计算每个标题有多少个服务项目。

感谢您的帮助!

回答

1
SELECT COUNT(DISTINCT service_titles.name) 
FROM service_names 
INNER JOIN service_titles ON service_names.title_id = service_titles.id 
GROUP BY service_titles.user_id, service_titles.slide_id 

这会让你不同title_names每个USER_ID/slide_id连击数。

SELECT COUNT(DISTINCT service_names.name) 
FROM service_names 
INNER JOIN service_titles ON service_names.title_id = service_titles.id 
GROUP BY service_titles.user_id, service_titles.slide_id 

...这就是相同的不同service_names的数量。如果你想同时在一个查询中,你可以把两个COUNT放在一起,因为无论你使用的是相同的GROUP BY

0

要指望你能有多少不同的头衔尝试:

SELECT user_id, COUNT(DISTINCT name) 
FROM service_titles 
GROUP BY user_id