MySQL where子句具有空值

时间:2015-04-07 08:54:06

标签: mysql null left-join where

我有这个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),但没有效果。这有什么解决方案吗?

3 个答案:

答案 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

感谢您的回答!