SQL使用NOT EXISTS查询后如何筛选house_one的is_nice为true的记录
解决方法
你可以直接在原有查询逻辑中关联houses表实现需求,不需要等查询出结果后再二次处理,正确写法如下:
SELECT hl.* FROM house_listings hl INNER JOIN houses h ON h.id = hl.house_one WHERE h.is_nice = 1 AND NOT EXISTS ( SELECT 1 FROM house_listings hl2 WHERE hl2.house_one = hl.house_two AND hl2.house_two = hl.house_one );
之前执行JOIN报错大概率是语法顺序错误,比如把JOIN子句写在了WHERE子句之后,或者关联条件匹配错误。上面的写法直接在查询阶段完成所有过滤逻辑,执行效率比后置处理更高。
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

