我正在尝试做一个 SELECT
在 MySQL 中查询也会执行 count
在另一个表中和 join
答案变成了我的初始 table
表格people
编号 |姓名 |头发颜色 |职位编号
表格job
编号 |职位名称
SELECT *
FROM job j
INNER JOIN (SELECT COUNT(job_id) AS totals
FROM people p
WHERE p.job_id='1')
ON j.count = totals
WHERE id = '1'
ORDER BY id ASC
所以我试图从我的 job
中获取上述查询以进行选择表由 id
并做一个 count
在people
表并添加列 count
到我的job
结果。
最佳答案
您不必在子查询中进行计数:您可以直接选择计数然后分组依据。此外,您不必手动精确地确定 people
job_id
:JOIN 直接在两个表字段之间进行(最少)。
SELECT j.id, j.job_name, count(p.id) as nb_people
FROM job j
INNER JOIN people p ON p.job_id = j.id
WHERE j.id = '1'
GROUP BY j.id, j.job_name
ORDER BY id ASC
查看 MySQL 聚合函数文档:http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html
也许再看看 JOIN 文档:http://dev.mysql.com/doc/refman/5.7/en/join.html
关于php - MySQL 内部连接来自另一个表的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557846/