Mysql 获取没有计数的记录

Mysql 获取没有计数的记录,mysql,count,group-by,using,Mysql,Count,Group By,Using,我已经仔细研究了一下,但仍然有一个问题。下表结构如下: 工作 就业与应用 id | jobs_id | user_id | candidate_id | employer_id 我有这个疑问 SELECT ja.job_id, COUNT(*) AS count, j.title FROM job_applications AS ja LEFT JOIN jobs AS j ON ja.jobs_id = j.jobs_id GROUP BY ja.jobs_id 但它不会返回任何没有计数的

我已经仔细研究了一下,但仍然有一个问题。下表结构如下:

工作

就业与应用

id | jobs_id | user_id | candidate_id | employer_id
我有这个疑问

SELECT ja.job_id, COUNT(*) AS count, j.title
FROM job_applications AS ja
LEFT JOIN jobs AS j
ON ja.jobs_id = j.jobs_id
GROUP BY ja.jobs_id

但它不会返回任何没有计数的作业,例如“0”。请问如何更改查询以显示这些内容?

也许您应该使用
完全外部联接
而不是普通的
联接

FULL OUTER JOIN
关键字返回两个表中的所有行

编辑:我搜索了一个MySQL备选方案:


没有时间测试它。

我认为查询没有任何问题,只是它有一个额外的列标题,不在GROUPBY子句中

SELECT ja.job_id, COUNT(j.jobs_id) AS count
FROM job_applications AS ja
LEFT OUTER JOIN jobs AS j
ON ja.job_id = j.jobs_id
GROUP BY ja.job_id

此查询将返回job_applications表中的所有记录以及jobs count of jobs表bases of link。

回答了我自己的问题。这个问题很好。删除标题后,一切都很好


谢谢您的时间。

如果没有看到模式,很难回答。您的查询没有问题!!我认为您还犯了一些其他错误,看起来应该是这样的,尽管返回的j.title可能有一个无意义的值(它来自哪一行尚未确定)。基本模式现在已经存在。它只是没有显示任何零计数。Kickstart,我同意。这将被删除。因为您正在对作业应用程序进行分组。尝试在j.jobs上更改为右连接和分组。idmysql没有
完全外部连接
(SELECT ja.job_id, COUNT(*) AS count, j.title
FROM job_applications AS ja
LEFT JOIN jobs AS j
ON ja.job_id = j.jobs_id
GROUP BY ja.job_id)
UNION ALL
(SELECT ja.job_id, COUNT(*) AS count, j.title
FROM job_applications AS ja
RIGHT JOIN jobs AS j
ON ja.job_id = j.jobs_id
WHERE tbl1.col IS NULL
GROUP BY ja.job_id)
SELECT ja.job_id, COUNT(j.jobs_id) AS count
FROM job_applications AS ja
LEFT OUTER JOIN jobs AS j
ON ja.job_id = j.jobs_id
GROUP BY ja.job_id