SQL 多表联接查询 这两种写法有什么区别

2025-03-04 15:40:39
推荐回答(4个)
回答1:

执行结果是一样的, 第一种按条件匹配两个表检索数据,这是最常用的写法,第二种单从上面的语句来看,有点画蛇添足的感觉, 先将SELECT * FROM B WHERE typeID = 0 视为一个集合(可以认为是临时表),然后在去关联A 表 , 感觉执行效率第一种应该更好

回答2:

第一种写法是A表与B表的联合形成有匹配的新表(匹配项是A.ID = B.aID),条件是B.typeID = 0,

第二种写法是B表先产生有条件的新表b,条件是 typeID = 0,之后是表A形成有匹配的新表(匹配项是A.ID = b.aID),

回答3:

这两个语句执行结果相同,执行计划效率也一样
都是先执行where语句筛选B表资料,再执行inner join

回答4:

第一种是连接查询,第二种是嵌套查询吧