MySQL 中的 using 用法

学习笔记 马富天 2020-01-19 16:25:51 165 0

【摘要】这是一篇很久就想写的文章,但是一直没得空来写,文章很简单,就是介绍一下 using ,也是温故而知新吧。

using 是与 join / left join / right join 一起使用的,using 用法简单的说就是在表连接是对于给定连接条件的简写形式。具体用法如下:

using 和 on 很相似,但不是一样的,如下:

数据准备:

  1. create table user(id int auto_increment primary key,name varchar(255));
  2. insert into user(name) values('hello');
  3. insert into user(name) values('are');
  4. insert into user(name) values('you');
  5. insert into user(name) values('ok');
  6. insert into user(name) values('?');

如:

  1. mysql> select * from user u1 left join user u2 using(id);
  2. +----+-------+-------+
  3. | id | name  | name  |
  4. +----+-------+-------+
  5. |  1 | hello | hello |
  6. |  2 | are   | are   |
  7. |  3 | you   | you   |
  8. |  4 | ok    | ok    |
  9. |  5 | ?     | ?     |
  10. +----+-------+-------+
  1. mysql> select * from user u1 left join user u2 on u1.id = u2.id;
  2. +----+-------+----+-------+
  3. | id | name  | id | name  |
  4. +----+-------+----+-------+
  5. |  1 | hello |  1 | hello |
  6. |  2 | are   |  2 | are   |
  7. |  3 | you   |  3 | you   |
  8. |  4 | ok    |  4 | ok    |
  9. |  5 | ?     |  5 | ?     |
  10. +----+-------+----+-------+

由上可见,当使用 select * 时,using 只会保留一个 id 字段(保留共有属性),而 on 则不会对 id 列进行删除。以下是 using 对多个列进行操作:

  1. mysql> select * from user u1 left join user u2 using(id,name);
  2. +----+-------+
  3. | id | name  |
  4. +----+-------+
  5. |  1 | hello |
  6. |  2 | are   |
  7. |  3 | you   |
  8. |  4 | ok    |
  9. |  5 | ?     |
  10. +----+-------+
  1. mysql> select * from user u1 left join user u2 on u1.id = u2.id and u1.name = u2.name;
  2. +----+-------+----+-------+
  3. | id | name  | id | name  |
  4. +----+-------+----+-------+
  5. |  1 | hello |  1 | hello |
  6. |  2 | are   |  2 | are   |
  7. |  3 | you   |  3 | you   |
  8. |  4 | ok    |  4 | ok    |
  9. |  5 | ?     |  5 | ?     |
  10. +----+-------+----+-------+

看出 using 和 on 的区别了吗?即使用 using 代替了 on ,变得简洁,而且只保留两张表共有的字段项,其实还是有实际应用功能的~

注意:using() 指定的列要在两个表都存在。

版权归 马富天个人博客 所有

本文标题:《MySQL 中的 using 用法》

本文链接地址:http://www.mafutian.com/436.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 什么是 MySQL 的排序规则(Collation)? 》 下一篇《 MySQL 索引在 in 语句中失效的情况 》

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多