0

私はかなり厄介な問題を抱えています。私が求めているのは、仕事に関連付けられているかどうかに関係なく、すべての業界のリストです。そう..

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

これは、業界に属する各ジョブの数を返しますが、ジョブにリンクされているかどうかに関係なく、すべての業界を返す必要があります。助けてくれてありがとう。ロブ

4

1 に答える 1

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

特定の業界に仕事がない場合はnull、GROUP_CONCAT に入ることに注意してください。そのような場合のデフォルト値をそのように追加できます。

于 2013-11-09T18:49:09.307 に答える