我有一个相当令人难以置信的问题。我所追求的是所有行业的清单,无论他们是否与工作挂钩。所以..
Web Design [0]
Accounts[3]
Sales[1]
Marketing[0]
因此,数据库中的作业具有随作业保存的行业ID。行业表有行业类型列表。 网页设计,账户,销售,营销等 下面是我到目前为止的SQL
SELECT ind.name,ind.id, GROUP_CONCAT(job.industry_id) AS id,
COUNT(*) AS industry_count
FROM jobs AS job,
industries AS ind
WHERE ind.id = job.industry_id
GROUP BY industry_id
这将返回属于某个行业的每个作业的计数,但我希望返回所有行业,无论是否有与之关联的作业。 非常感谢你们的帮助。罗布
答案 0 :(得分:0)
您似乎需要LEFT JOIN
。试试这个:
SELECT ind.name, ind.id,
COALESCE(GROUP_CONCAT(job.industry_id), 'default_value') AS id,
COUNT(job.industry_id) AS industry_count
FROM industries ind
LEFT JOIN jobs job ON ind.id = job.industry_id
GROUP BY ind.id
请注意,如果某个行业没有工作,您将在GROUP_CONCAT中获得null
。您可以通过这种方式为这些案例添加默认值。