一連のテーブルを結合する次のクエリがあります。
他のテーブルと一致するかどうかに関係なく、consolidated_industry_id = 1 を持つ INDUSTRY テーブルからすべてのレコードを取得したいと考えています。これはLEFT JOINで行う必要があると思いますか?
SELECT attr.industry_id AS option_id,
attr.industry AS option_name,
uj.ft_job_industry_id,
Avg(CASE
WHEN s.salary > 0 THEN s.salary
END) AS average,
Count(CASE
WHEN s.salary > 0 THEN attr.industry
END) AS count_non_zero,
Count(attr.industry_id) AS count_total
FROM industry attr,
user_job_ft_job uj,
salary_ft_job s,
user_job_ft_job ut,
[user] u,
user_education_mba_school mba
WHERE u.user_id = uj.user_id
AND u.user_id = ut.user_id
AND u.user_id = mba.user_id
AND uj.ft_job_industry_id = attr.industry_id
AND uj.user_job_ft_job_id = s.user_job_id
AND u.include_in_student_site_results = 1
AND u.site_instance_id IN ( 1 )
AND uj.job_type_id = 1
AND attr.consolidated_industry_id = 1
AND mba.mba_graduation_year_id NOT IN ( 8, 9 )
AND uj.admin_approved = 1
GROUP BY attr.industry_id,
attr.industry,
uj.ft_job_industry_id
これは 1 つの行のみを返しますが、consolidated_industry_id = 1 である業界テーブルには 8 つの一致があります。
--- 編集: ここでの本当の問題は、LEFT JOIN を通常の結合と組み合わせるにはどうすればよいかということです。