关于Mysql中using与on的区别

您所在的位置:网站首页 use与using的用法 关于Mysql中using与on的区别

关于Mysql中using与on的区别

2023-10-27 16:11| 来源: 网络整理| 查看: 265

关于我今天在数据库系统概论书上看见using关联查询却毫无印象的事

这是我一般做关联查询的样子:

select * from 表1 inner join 表2 on 表1.相同的列=表2.相同的列; //又或是 select 表1的列 from 表1 inner join 表2 on 表1.相同的列=表2 .相同的列;

这是我今天看到的:

//using用法 select * from 表1 inner join 表2 using(相同的列); /*书上是说可以使用USING来去掉结果中的重复值*/

这种using用法是我在以往sql语句学习中,从来没碰见过的,所以写这篇博客来记忆一下。

USING用法

sql/92标准可以使用using关键字来简化连接查询,但是只是在查询满足下面两个条件时,才能使用using关键字进行简化。

查询必须是等值连接。等值连接中的列必须具有相同的名称和数据类型。 等值连接:从左表中取出每一条记录,去右表中与所有的记录进行匹配:匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留。 //书上的例句 SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT OUTER JOIN SC USING(Sno); ON用法

一般我们join后的表,并不是我们想要的,这时,可以用 ON 来加一些条件: ON后面就是我们加的条件,我们想要的列的数据,注意一下,join后的表列名是有重复的,所以ON后面的条件语句中我们要加上原来的表名。

//书上的例句 SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno=SC.Sno;

我不使用on的原因

我的大多数联接都不适合它(不是匹配的相同字段名,和/或联接中的多个匹配)和 在具有两个以上表格的情况下,它并不是立即显而易见的 以前学习过程中,甚至见过where用法的,但是using的用法实在是少。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3