我的数据库表有以下结果:
查询:
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_name 数量将为 6
- 如果用户有 1 个服务标题,则该标题的最大 service_name 数量将为 16
我将使用 PHP 进行所有编码,但我想知道如何进行此操作。我需要一种方法来计算该用户和幻灯片有多少个唯一的 service_title,然后计算每个标题有多少个服务项目。
感谢您的帮助!
最佳答案
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
这将为您提供每个 user_id/slide_id 组合的不同 title_name 的数量。
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
...这就是相同服务的不同服务名称的数量。如果您希望在一个查询中同时使用这两个查询,则可以将两个 COUNT
放在一起,因为无论如何您都使用相同的 GROUP BY
。
关于PHP/MySQL - 计算查询中的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262614/