2015-04-07 2 views
2

У меня есть это SQL заявление, которое выглядит следующим образом:MySQL, где положение с неопределенными значениями

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) 

Я хочу, чтобы включить строки, даже если некоторые из значений равны нулю, и это прекрасно работает с этим кодом, но когда я раскомментируйте предложение where, в котором он больше не содержит нулевые столбцы. Я попытался сделать, где (adresse.adresseType = 1 или adresse = null), но это не повлияло. Есть ли какие-либо решения?

+3

Вы должны «NULL» не «= NULL» –

+0

Это, вероятно, было причиной. Он работает теперь, используя «AND postadresse_adresse.adresseType = 1» в левом членском соглашении –

ответ

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

Это неверно! NULL = NULL выражение возвращает NULL, а не true. Вы должны использовать (adresse.adresseType NULL) –

+1

@DobromirVelev: - Спасибо. Обновлен мой ответ! –

+2

Upvote - это должно работать –

1

Попробуйте использовать

where (adresse.adresseType = 1 or adresse is null) 
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 

Спасибо за ответы!

Смежные вопросы