sql语言中join on和where有什么区别?
例如:select*fromAa,Bbwherea.id=3andb.id!=45;select*fromAajoinBbon(a.id=b.id);这两种写法有时候都能...
例如:select * from A a,B b where a.id=3 and b.id!=45;
select * from A a join B b on(a.id=b.id);这两种写法有时候都能够达到我们的目的,我想知道这两种查询方式,到底哪一种的效率更高呢?他们的区别是什么?
难道就没有人可以说的出来吗?太伤心了 展开
select * from A a join B b on(a.id=b.id);这两种写法有时候都能够达到我们的目的,我想知道这两种查询方式,到底哪一种的效率更高呢?他们的区别是什么?
难道就没有人可以说的出来吗?太伤心了 展开
1个回答
展开全部
join是数据连接.分为3种. inner join left join right join
inner join 1对1 等同于where A.a=B.b
A a left join B b 在left左边的A代表多,B代表1, 也就 是 多对1.
right 正好相反.
例:
人表 身份证表 1个人只有1个身份证 就是1对1
学生表 班级表 多个人在1个班级 多对1
商店表 商品 1个商店里有多种商品 1对多.
inner join 1对1 等同于where A.a=B.b
A a left join B b 在left左边的A代表多,B代表1, 也就 是 多对1.
right 正好相反.
例:
人表 身份证表 1个人只有1个身份证 就是1对1
学生表 班级表 多个人在1个班级 多对1
商店表 商品 1个商店里有多种商品 1对多.
更多追问追答
追问
我让你回答的两种查询效率的比较,join on的几种查询我都知道,最主要是比较我说的那两种
追答
join是表连接,where是条件判断.
从你给的2条sql语句看,效率几乎没区别.
但如果是比较复杂的sql查询或者是多次连续调用的话就有区别了.
where是擅长条件判断
join是擅长表与表之间的联合查询
在多表查询的时候join更优
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询