数据库join 语句使用及效率说明 在我们开发数据库的时候,一定要时刻考虑效率的要求 个人建议当多表关联的时候,尽量少用inner join 2010 宋述臣 第1 章 目录 第1 章 Sql 之left join、right join、inner join 的区别 ............................................................ 3 第2 章 INNER JOIN 和 left JOIN ............................................................................................ 8 2.1 现在比较:left join 和 inner join ........................................................................... 13 第3 章 提升 left join 效率 ...................................................................................................... 14 第4 章 SQL Server 中 Inner join 和 w here 的效率差异 ...................................................... 14 第1章 Sql 之left join、right join、inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: -------------------------------------------- 表 A 记录如下: aID aNu m 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表 B 记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 -------------------------------------------- 1.left join sql 语句如下: select * from A left join B on A.aID = B.bID 结果如下: aID aNu m bID bName 1 a20050111 1 2006032401 2 a20050112 2 2006032402 3 a20050113 3 2006032403 4 a20050114 4 2006032404 5 a20050115 NULL NULL (所影响的行数为 5 行) 结果说明: left join 是以A 表的记录为基础的,A 可以看成左表,B 可以看成右表,left join 是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B 表记录不足的地方均为NULL. -------------------------------------------- 2.right join sql 语句如下: select...