* 测试,当on的条件为false的时候,join是否会被优化?
-- 插入测试表
CREATE TABLE person (id INT NOT NULL ,NAME VARCHAR(20));
CREATE TABLE bill (id INT NOT NULL ,NAME VARCHAR(20),personId INT );
-- 插入测试数据
DELETE FROM person;
INSERT INTO person VALUES(1,"martin fowler");
INSERT INTO person VALUES(2,"rebert martin");
-- 插入测试数据
DELETE FROM bill;
INSERT INTO bill VALUES(1,"bill1",1);
INSERT INTO bill VALUES(2,"bill2",1);
INSERT INTO bill VALUES(2,"bill2",3);
SELECT * FROM bill;
// mysql 是不能优化掉的,执行计划内有person
EXPLAIN SELECT bill.* FROM bill LEFT JOIN person ON FALSE AND bill.personId = person.id
同样的测试,sqlserver可以优化掉。
即使select内有person的字段也可以。相见 执行计划
SELECT bill.*,person.* FROM bill LEFT JOIN person ON 1=0 aND bill.personId = person.id
分享到:
相关推荐
sql server拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。
SQL字符串函数大全 1、SQL 字符串函数大全-去空格函数 2、SQL 字符串函数大全-数据类型转换函数 3、SQL 字符串处理函数大全 一、字符转换函数 二、去空格函数 三、取子串函数 四、字符串比较函数 五、字符串操作...
Qt 格式化字符串 - Avatarx - 博客园博客园首页新随笔联系管理订阅随笔- 1695 文章- 0 评论- 3Qt 格式化字符串Qt字符串格式化性能比较
sql 多行合并某一列字符串拼接的示例语句
SqlServer2000,用语数据库字符串相加的一个函数 用于字符串相加,字符串拼接
SQL 字符串处理函数 获取指定的字符
SQL字符串函数SQL字符串函数SQL字符串函数SQL字符串函数SQL字符串函数SQL字符串函数SQL字符串函数SQL字符串函数
SQL Server 将某一列的值拼接成字符串示例
MyBatis动态拼接SQL
ms sql server 字符合计,类似sum函数的功能,不过是针对字符型!
SQL Server字符串处理函数大全 sql server是一个数据库,文档介绍了这个数据库的字符串操作函数
SQL截取以逗号分隔的字符串SQL截取以逗号分隔的字符串SQL截取以逗号分隔的字符串SQL截取以逗号分隔的字符串
MyBatis的动态SQL,解决了SQL字符串拼接的痛苦。下文分步骤给大家详细介绍了MyBatis 动态拼接Sql字符串的问题,非常不错,感兴趣的朋友一起看下吧
一款方便将java与sql语句互相转换的小工具,在日常工作开发中,非常实用,f方便写字符串拼接的语句,常用选项是String和StringBuffer
SQL截取字符串函数(1、截取从字符串左边开始N个字符 2、截取从字符串右边开始N个字符(例如取字符www.163.com) 3、截取字符串中任意位置及长度 等等)
讲解了ABAP SQL Functions for Strings的使用
用SQL语句截取字符串, string substr ( string string, int start [, int length]) 参数1:处理字符串 参数2:截取的起始位置(第一个字符是从0开始) 参数3:截取的字符数量
一个sql的多字符的检索源码非常有帮助的实例,初学者值得拥有
SQL字符串处理函数大全
资源包含文件: 1、MySQL命令行导出数据库.txt 2、MySQL字段数据类型和长度.sql 3、usefullSQL.sql ...字符串:求长度,定位,截取,拼接 日期操作:求差,加减,UTC时间,时区(timezone)转换等 查看表空间大小