设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 382|回复: 0

【数据库每日一问】Inner join 与Where对比

[复制链接]
MrLi 发表于 2013-12-28 17:00:01 | 显示全部楼层 |阅读模式

:(在oracle数据库中)这两者之间有没性能区别?
  1. Select * from Table1 T1
  2. Inner Join Table2 T2 On T1.ID = T2.ID
复制代码

And
  1. Select * from Table1 T1, Table2 T2
  2. Where T1.ID = T2.ID
复制代码



不,这两者的执行步骤是相同的,下面有两个数据表:
  1. CREATE TABLE table1 (
  2.   id INT,
  3.   name VARCHAR(20)
  4. );

  5. CREATE TABLE table2 (
  6.   id INT,
  7.   name VARCHAR(20)
  8. );
复制代码
执行查询时使用内部连接:
  1. -- with inner join
  2. EXPLAIN PLAN FOR
  3. SELECT * FROM table1 t1
  4. INNER JOIN table2 t2 ON t1.id = t2.id;

  5. SELECT *
  6. FROM TABLE (DBMS_XPLAN.DISPLAY);

  7. -- 0 select statement
  8. -- 1 hash join (access("T1"."ID"="T2"."ID"))
  9. -- 2 table access full table1
  10. -- 3 table access full table2
复制代码
执行查询时使用WHERE子句:
  1. -- with where clause

  2. EXPLAIN PLAN FOR
  3. SELECT * FROM table1 t1, table2 t2
  4. WHERE t1.id = t2.id;

  5. SELECT *
  6. FROM TABLE (DBMS_XPLAN.DISPLAY);

  7. -- 0 select statement
  8. -- 1 hash join (access("T1"."ID"="T2"."ID"))
  9. -- 2 table access full table1
  10. -- 3 table access full table2
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-11-21 22:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表