sub1和sub2都与super有1对1的关系。ISNULL()使用LEFT JOIN时,IS NULL性能
我想确定一个给定的超级记录是否存在一个连接。
以下两个查询应该产生我想要的结果。是否有任何理由使用!ISNULL()与IS NOT NULL?
SELECT super.*
FROM super
LEFT OUTER JOIN sub1 ON super.id=sub1.super_id
LEFT OUTER JOIN sub2 ON super.id=sub2.super_id
WHERE (!ISNULL(sub1.id) OR !ISNULL(sub2.id)) AND super.id=123;
SELECT super.*
FROM super
LEFT OUTER JOIN sub1 ON super.id=sub1.super_id
LEFT OUTER JOIN sub2 ON super.id=sub2.super_id
WHERE (sub1.id IS NOT NULL OR sub2.id IS NOT NULL) AND super.id=123;
[Mysql中的“IS NULL”和“ISNULL()”之间的差异的可能重复](http://stackoverflow.com/questions/3530124/differences-between-is-null-and-isnull-in-mysql ) – 2013-02-19 13:34:47
我会说'不是NULL'更容易阅读。 – 2013-02-19 13:40:16