2016-06-30 21 views
-1
select * from inventory.home_picture_types hpt 
left join inventory.home_pictures hp on hp.home_picture_type_id = hpt.id 
where hp.id IS NULL; 

Diese Abfrage funktioniert auf vagabundierende/Gehöft, und gibt die home_picture_types mit NULL home_picture Werte (richtig, ich versuche nur, die home_picture_types zu bekommen).MySQL WHERE x OR NULL funktioniert nicht

Wenn ich jedoch diese Abfrage auf CentOS Maria DB ausführen, gibt es überhaupt keine Ergebnisse zurück. Es ist , als ob der LINKE JOIN ein INNERER JOIN ist.

Ich habe diese Abfrage 700 verschiedene Möglichkeiten geschrieben, und nichts hilft. Ich überprüfte den sql_mode und es ist auf '' 'auf beiden Datenbanken eingestellt. Irgendwelche Ideen, warum es auf einem und nicht dem anderen arbeitet?

+1

NULL ist nie gleich wie alles selbst. Deine SQL macht keinen Sinn. – EJP

+0

'wählen * aus inventory.home_picture_types hpt links join inventory.home_pictures hp auf hp.home_picture_type_id = hpt.id wo hp.id = ''; versuchen Sie es. –

+0

Es sollte die Zeilen zurückgeben, die kein passendes hpt.id und hp.home_picture_type haben, richtig? Ich versuche zu bekommen, wo sie nicht übereinstimmen, die würde nur etwas zurückgeben: http://tinypic.com/r/243pzti/9 – bi4nchi

Antwort

0

Alle Typen: select DISTINCT home_picture_type_id from inventory.home_picture_types.

Typen, für die es kein Bild gibt: select home_picture_type_id from inventory.home_picture_types AS hpt WHERE NOT EXISTS(SELECT * FROM inventory.home_pictures WHERE home_picture_type_id = hpt.id).