至少在MariaDB v10.x中,为什么具有左连接的真子句不起作用,因为我期望有NULL
的返回值?左连接奇怪
以下工作:
SELECT
u.id
FROM
user u
INNER JOIN role r on r.user = u.id
INNER JOIN customer c ON c.id = r.customer
LEFT JOIN customer_subclass cs ON cs.customer = c.id
WHERE
u.status = 'NEW' AND (cs.code != 4 OR cs.code IS NULL)
,但是当我第一次尝试
WHERE
u.status = 'NEW' AND cs.code != 4
时cs.code
是NULL
没有奏效。为什么我必须专门针对NULL
本身进行测试?我会假设NULL != 4
?
将cs.code!= 4移动到ON子句以获得真正的LEFT JOIN行为。 – jarlh