我有一个相当令人难以置信的问题。我想要的是一份所有行业的清单,不管这些行业是否与工作有关。所以..。
Web Design [0]
Accounts[3]
Sales[1]
Marketing[0]
这样,数据库中的作业就有了与作业一起保存的行业id。行业表有行业类型的列表。到目前为止,Web设计、帐户、销售、市场营销等都是我的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
这将返回属于一个行业的每个职务的计数,但我希望所有行业都能返回与其相关的或不带工作的工作。非常感谢你们的帮助。抢夺
发布于 2013-11-09 18:49:09
看来你需要一个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
注意,如果在给定的行业中没有工作,您将在null
中获得GROUP_CONCAT。您可以通过这种方式为这些情况添加默认值。
https://stackoverflow.com/questions/19881649
复制相似问题