获取没有计数的记录

时间:2014-02-10 16:18:45

标签: mysql count group-by using

我有一个挖掘但仍然有这个问题。下面是表格结构:

工作

jobs_id | title

JOBS_APLICATIONS

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'。请问如何更改查询以显示这些内容?

3 个答案:

答案 0 :(得分:0)

也许你应该使用FULL OUTER JOIN代替普通JOIN

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

编辑:我搜索了MySQL替代方案:

(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)

没时间测试它..

答案 1 :(得分:0)

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

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表中的所有记录和链接的作业表基数。

答案 2 :(得分:0)

回答了我自己的问题。查询没问题。删除标题后一切都很好。

感谢您的时间。