如何在mysql sql中加入table之前的条件?
How to put a condition before to join the table in mysql sql?
如何在加入 table 之前设置条件..
我想为 (INNER JOIN job_views ON job_views.job_id = job.job_id )
这个内部联接添加一个条件。
如果 job_views.job_id
存在,只有这个加入才会发生,否则不需要加入。
请问如何解决?
SELECT
job.job_id,
job.company_id,
job.job_title,
job.mini_description,
job.job_description AS experience,
job.salary,
job.added_date,
company.company_id,
company.company_url,
company.company_name,
job_type.job_type,
mst_location.location_name,
job_location.location_id,
COUNT(job_views.view_id) AS no_views,
mst_industry.industry_title,
company_img.img_title,
company_img.img_file_name
FROM
job
INNER JOIN job_location ON (job_location.job_id=job.job_id AND job_location.location_id IN (SELECT location_id FROM mst_location WHERE mst_location.location_name LIKE '%Sri%'))
INNER JOIN company ON company.company_id = job.company_id
INNER JOIN job_type ON job_type.job_type_id = job.job_type_id
INNER JOIN mst_location ON mst_location.location_id = job_location.location_id
INNER JOIN mst_industry ON company.industry_id = mst_industry.industry_id
INNER JOIN company_img ON company.company_id = company_img.company_id
INNER JOIN job_views ON job_views.job_id = job.job_id
WHERE
(job.job_title LIKE '%soft%' OR
job.mini_description LIKE '%Admin%') AND
company_img.active_flag = 1
ORDER BY
job.job_title ASC
这里最简单的(不确定最好的)将改用 LEFT JOIN
LEFT JOIN job_views ON job_views.job_id = job.job_id
如何在加入 table 之前设置条件..
我想为 (INNER JOIN job_views ON job_views.job_id = job.job_id )
这个内部联接添加一个条件。
如果 job_views.job_id
存在,只有这个加入才会发生,否则不需要加入。
请问如何解决?
SELECT
job.job_id,
job.company_id,
job.job_title,
job.mini_description,
job.job_description AS experience,
job.salary,
job.added_date,
company.company_id,
company.company_url,
company.company_name,
job_type.job_type,
mst_location.location_name,
job_location.location_id,
COUNT(job_views.view_id) AS no_views,
mst_industry.industry_title,
company_img.img_title,
company_img.img_file_name
FROM
job
INNER JOIN job_location ON (job_location.job_id=job.job_id AND job_location.location_id IN (SELECT location_id FROM mst_location WHERE mst_location.location_name LIKE '%Sri%'))
INNER JOIN company ON company.company_id = job.company_id
INNER JOIN job_type ON job_type.job_type_id = job.job_type_id
INNER JOIN mst_location ON mst_location.location_id = job_location.location_id
INNER JOIN mst_industry ON company.industry_id = mst_industry.industry_id
INNER JOIN company_img ON company.company_id = company_img.company_id
INNER JOIN job_views ON job_views.job_id = job.job_id
WHERE
(job.job_title LIKE '%soft%' OR
job.mini_description LIKE '%Admin%') AND
company_img.active_flag = 1
ORDER BY
job.job_title ASC
这里最简单的(不确定最好的)将改用 LEFT JOIN
LEFT JOIN job_views ON job_views.job_id = job.job_id