我有一个挖掘但仍然有这个问题。下面是表格结构:
工作
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'。请问如何更改查询以显示这些内容?
答案 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)
回答了我自己的问题。查询没问题。删除标题后一切都很好。
感谢您的时间。