我有兩個表:SQL返回行,如果沒有結果發現
person
id
name
car
name
person_id
目前查詢是這樣:
SELECT
person.name
car.name
FROM
person, car
WHERE
person.id = car.person_id
現在如果有一個人相關聯的汽車能正常工作。但是,如果沒有,那麼這個人將不會得到回報。如果一個人沒有汽車,我想在列car.name
中返回一行文字'No Car'
。
我有兩個表:SQL返回行,如果沒有結果發現
person
id
name
car
name
person_id
目前查詢是這樣:
SELECT
person.name
car.name
FROM
person, car
WHERE
person.id = car.person_id
現在如果有一個人相關聯的汽車能正常工作。但是,如果沒有,那麼這個人將不會得到回報。如果一個人沒有汽車,我想在列car.name
中返回一行文字'No Car'
。
select person.name, coalesce(car.name, 'no car')
from person
left outer join car on person.id = car.person_id
select person.name, ISNULL(car.name, 'no car')
from person
left join car on person.id = car.person_id
isnull()是一個RDBM的特定函數,從標籤看,雖然看起來有點模棱兩可,但OP包含了psql - 所以我把它理解爲postgres - 即使它是錯誤的標籤。 – Andrew
你是對的,我只是使用MSSQL,並沒有考慮寫這個查詢。 –
SELECT person.name, CASE WHEN car.name IS NULL THEN 'no car' ELSE car.name END
FROM person
LEFT JOIN car ON person.id = car.person_id
嘗試做一個'左join'上'Person'。 – rae1