Mysql-使用COUNT左连接
我有两个数据库表Mysql-使用COUNT左连接,mysql,Mysql,我有两个数据库表 目录 目录类别 它们分别通过两个表中的类别id(如cat_id和id)链接 我想列出目录_category中的所有类别,同时计算在目录中找到的该类别的记录数(使用单个sql查询) 我试过了 SELECT directory_category.id directory_category.category_name directory.cat_id count(directory) as total_records F
我想列出目录_category中的所有类别,同时计算在目录中找到的该类别的记录数(使用单个sql查询) 我试过了
SELECT
directory_category.id
directory_category.category_name
directory.cat_id
count(directory) as total_records
FROM directory_category
LEFT JOIN directory
ON directory_category.id = directory.cat_id
这个查询只生成一条记录,而总记录似乎是整个目录表的总和,我可以这样说:
SELECT
directory_category.id,
directory_category.category_name,
directory.cat_id,
COUNT(directory.id) AS total_records
FROM directory_category
LEFT JOIN directory ON directory_category.id = directory.cat_id
GROUP BY directory_category.id
SELECT
directory_category.id,
directory_category.category_name,
directory.cat_id,
count
FROM
directory_category
LEFT JOIN
(
SELECT
count(directory) as total_records
FROM
directory
INNER JOIN
directory_category
ON
directory_category.id = directory.cat_id
) AS count
但很明显,你需要好好利用它。对于所有记录,total_records将被列为1