sql中inner join on 和一般的多表查询有什么区别??

2024-10-30 07:41:35
推荐回答(4个)
回答(1):

没什么区别,在执行方式和效率上都是一样的
只是书写的方式不同
基本上这个inner join 是为了区别 left join ,right join等的一个写法
而另外那种不是join的写法,只能等同于inner join

回答(2):

sql = "select [个人信息$].*,[工作经历$].* from [个人信息$],[工作经历$] where [个人信息$].UID=[工作经历$].UID"
sql = "select [个人信息$].*,[工作经历$].* from [个人信息$] inner  Join [工作经历$] on [个人信息$].UID=[工作经历$].UID"

第一种是普通的多表查询,内部还是笛卡尔积的逐行的搜索机制,如果查询的几张表数据量大的话会降低性能;

第二种是内连接。两种方式得到的结果是一致的。

两者没什么区别,在执行方式和效率上都是一样的,只是书写的方式不同,基本上inner join 是为了区别 left join ,right join等的一个写法,而另外那种不是join的写法,只能等同于inner join。

回答(3):

第一种是普通的多表查询,内部还是笛卡尔积的逐行的搜索机制,如果查询的几张表数据量大的话会降低性能。慎用。
第二种是内连接。
两种方式得到的结果是一致的,推荐使用第二种。

回答(4):

刚特用60万的数据进行多表关联查询,总结结果如下:

from多表关联查询:耗时15.376s、15.106s、15.216s、17.569s、15.729s,平均15.7992s

inner join on多表查询:耗时16.3s、17.469s、18.295s、15.505s、18.411s,平均17.196s

所以得出结论两者查询速度上并无多大差别!