Привет, всем!
Делаю запрос в mysql: select * from A left join B on (A.x=B.n) where (A.x,A.y,A.z) not in (select N,M,B from C), при этом не выбираются строки где B - NULL (A.z, B-тип date). Решил проблему подставив ifnull(B,0) ifnull(A.z,0) в соответствующие места. Просто интересно, чтобы в будующем не попадать - почему так происходит?
>будующем не попадать - почему так происходит?В стандарте SQL написано - любое сравнение A=B дает в результате NULL, если хотя бы один операнд(A или B) содержит в себе NULL.
В твоем случае - все сравнения (A.x=B.n) которые дают NULL считаются неудовлетворяющими запрос.Делай поля по которым джойнишь "не-нуль", или ifnull(B,0).