博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】这是一篇很久就想写的文章,但是一直没得空来写,文章很简单,就是介绍一下 using ,也是温故而知新吧。
using 是与 join / left join / right join 一起使用的,using 用法简单的说就是在表连接是对于给定连接条件的简写形式。具体用法如下:
using 和 on 很相似,但不是一样的,如下:
数据准备:
create table user(id int auto_increment primary key,name varchar(255));
insert into user(name) values('hello');
insert into user(name) values('are');
insert into user(name) values('you');
insert into user(name) values('ok');
insert into user(name) values('?');
如:
mysql> select * from user u1 left join user u2 using(id);
+----+-------+-------+
| id | name | name |
+----+-------+-------+
| 1 | hello | hello |
| 2 | are | are |
| 3 | you | you |
| 4 | ok | ok |
| 5 | ? | ? |
+----+-------+-------+
mysql> select * from user u1 left join user u2 on u1.id = u2.id;
+----+-------+----+-------+
| id | name | id | name |
+----+-------+----+-------+
| 1 | hello | 1 | hello |
| 2 | are | 2 | are |
| 3 | you | 3 | you |
| 4 | ok | 4 | ok |
| 5 | ? | 5 | ? |
+----+-------+----+-------+
由上可见,当使用 select * 时,using 只会保留一个 id 字段(保留共有属性),而 on 则不会对 id 列进行删除。以下是 using 对多个列进行操作:
mysql> select * from user u1 left join user u2 using(id,name);
+----+-------+
| id | name |
+----+-------+
| 1 | hello |
| 2 | are |
| 3 | you |
| 4 | ok |
| 5 | ? |
+----+-------+
mysql> select * from user u1 left join user u2 on u1.id = u2.id and u1.name = u2.name;
+----+-------+----+-------+
| id | name | id | name |
+----+-------+----+-------+
| 1 | hello | 1 | hello |
| 2 | are | 2 | are |
| 3 | you | 3 | you |
| 4 | ok | 4 | ok |
| 5 | ? | 5 | ? |
+----+-------+----+-------+
看出 using 和 on 的区别了吗?即使用 using 代替了 on ,变得简洁,而且只保留两张表共有的字段项,其实还是有实际应用功能的~
注意:using() 指定的列要在两个表都存在。
版权归 马富天个人博客 所有
本文标题:《MySQL 中的 using 用法》
本文链接地址:http://www.mafutian.com/436.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
评论审核未开启 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||