【发布时间】:2013-02-19 13:29:39
【问题描述】:
sub1 和 sub2 都与 super 是一对一的关系。
我希望确定其中任何一个对于给定超级记录是否存在连接。
以下两个查询应该会产生我想要的结果。是否有任何理由使用 !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;
【问题讨论】:
-
我会说
IS NOT NULL更容易阅读。
标签: mysql query-optimization database-performance