我有这个sql语句,如下所示:
SELECT hovedenhet.organisasjonsnummer, adresse.adresse , poststed.poststed, land.navn, kontaktdata.epostadresse
FROM hovedenhet
LEFT JOIN adresse on hovedenhet.organisasjonsnummer = adresse.organisasjonsnummer
LEFT JOIN poststed on poststed.poststed_id=adresse.poststed_id
LEFT JOIN land on land.land_id = adresse.land_id
LEFT JOIN kontaktdata on kontaktdata.organisasjonsnummer = hovedenhet.organisasjonsnummer
#where (adresse.adresseType=1)
我希望包含行,即使某些值为null,这对于此代码也可正常工作,但是当我取消注释where子句时,它不再包含空列。我试过去做(adresse.adresseType = 1或adresse = null),但没有效果。这有什么解决方案吗?
答案 0 :(得分:4)
试试这个:
SELECT hovedenhet.organisasjonsnummer, adresse.adresse , poststed.poststed, land.navn, kontaktdata.epostadresse
FROM hovedenhet
LEFT JOIN adresse on hovedenhet.organisasjonsnummer = adresse.organisasjonsnummer
LEFT JOIN poststed on poststed.poststed_id=adresse.poststed_id
LEFT JOIN land on land.land_id = adresse.land_id
LEFT JOIN kontaktdata on kontaktdata.organisasjonsnummer = hovedenhet.organisasjonsnummer
where (adresse.adresseType = 1 or adresse.adresseType is null)
答案 1 :(得分:1)
尝试使用
where (adresse.adresseType = 1 or adresse is null)
答案 2 :(得分:0)
目前正在使用:
SELECT hovedenhet.organisasjonsnummer, adresse.adresse , poststed.poststed,
land.navn, kontaktdata.epostadresse
FROM hovedenhet
LEFT JOIN adresse on hovedenhet.organisasjonsnummer = adresse.organisasjonsnummer
AND adresse.adresseType=1
LEFT JOIN poststed on poststed.poststed_id=adresse.poststed_id
LEFT JOIN land on land.land_id = adresse.land_id
LEFT JOIN kontaktdata on kontaktdata.organisasjonsnummer = hovedenhet.organisasjonsnummer
感谢您的回答!