我在postgres db中有两个表。公司和训练营。Companies.company_id是bootcampers.company_id外键的主键。
尝试选择bootcampers中的所有行,以及基于company_id的公司中的company_id和company_name。一些训练营的人还没有company_id。如何将此psql查询更改为“请返回所有字段”,但如果company_id为空,则无论如何都要返回其他所有字段。有没有需要使用“null Is ok”的东西?
SELECT uid,
email,
photourl,
first_name,
surname,
aboutme,
job_title,
company_name,
salary,
start_date,
previous_roles,
cohort_num,
region,
job_satisfaction,
new_job,
bootcampers.twitter,
github,
portfolio,
bootcampers.linkedin
FROM companies
INNER JOIN bootcampers ON bootcampers.company_id = companies.company_id
WHERE first_name ILIKE '%' || $1 || '%'发布于 2020-05-01 01:16:29
因为您想要来自Bootcampers的一切,所以您需要一个RIGHT JOIN而不是一个INNER JOIN
SELECT uid,
email,
photourl,
first_name,
surname,
aboutme,
job_title,
company_name,
salary,
start_date,
previous_roles,
cohort_num,
region,
job_satisfaction,
new_job,
bootcampers.twitter,
github,
portfolio,
bootcampers.linkedin
FROM companies
RIGHT JOIN bootcampers ON bootcampers.company_id = companies.company_id
WHERE first_name ILIKE '%' || $1 || '%'如果要在companies表中的列上添加筛选器,请务必小心,因为这可能会否定您的RIGHT JOIN,并使其再次像INNER一样工作。
https://stackoverflow.com/questions/61525169
复制相似问题