博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
详解mysql中的Using与On的用法
阅读量:6940 次
发布时间:2019-06-27

本文共 1778 字,大约阅读时间需要 5 分钟。

多用才可以体会各个关键字的用法啊。。。

原文来自【】

在用Join进行多表联合查询时,我们通常使用On来建立两个表的关系。其实还有一个更方便的关键字,那就是Using。那么这两个关键字在使用上有啥区别呢?往下看。

假设有如下两张表:

  
mysql> select * from pets;
+---------+---------+--------+-----------+
| pets_id | animal  | name   | owners_id |
+---------+---------+--------+-----------+
|       1 | fox     | Rusty  |         2 |
|       2 | cat     | Fluffy |         2 |
|       3 | cat     | Smudge |         3 |
|       4 | cat     | Toffee |         3 |
|       5 | dog     | Pig    |         3 |
|       6 | hamster | Henry  |         1 |
|       7 | dog     | Honey  |         1 |
+---------+---------+--------+-----------+
7 rows in set (0.00 sec)
 
mysql> select * from owners;
+-----------+-------+
| owners_id | name  |
+-----------+-------+
|         1 | Susie |
|         2 | Sally |
|         3 | Sarah |
+-----------+-------+
3 rows in set (0.00 sec)

现在要找出这些宠物的主人是谁,我们会这么写:

mysql> select owners.name as owner, pets.name as pet, pets.animal
    -> from owners join pets on (pets.owners_id = owners.owners_id);
+-------+--------+---------+
| owner | pet    | animal  |
+-------+--------+---------+
| Sally | Rusty  | fox     |
| Sally | Fluffy | cat     |
| Sarah | Smudge | cat     |
| Sarah | Toffee | cat     |
| Sarah | Pig    | dog     |
| Susie | Henry  | hamster |
| Susie | Honey  | dog     |
+-------+--------+---------+
7 rows in set (0.00 sec)

这是完全正确的。不过我们仔细看一下,pets表与owners表的关联字段名都是owners_id,这时就可以用Using来建立表之间关系了。

mysql> select owners.name as owner, pets.name as pet, pets.animal
    -> from owners join pets using (owners_id);
+-------+--------+---------+
| owner | pet    | animal  |
+-------+--------+---------+
| Sally | Rusty  | fox     |
| Sally | Fluffy | cat     |
| Sarah | Smudge | cat     |
| Sarah | Toffee | cat     |
| Sarah | Pig    | dog     |
| Susie | Henry  | hamster |
| Susie | Honey  | dog     |
+-------+--------+---------+
7 rows in set (0.00 sec)

结果是完全一样的,但是写法却更简洁了。

也就是说,如果两个表的关联字段名是一样的,就可以使用Using来建立关系,简洁明了。如果不一样,只能用On了哦~

转载于:https://www.cnblogs.com/ishenghuo/p/3889127.html

你可能感兴趣的文章
UVA 610 Street Directions 双连通分量
查看>>
比尔盖茨的都市传说
查看>>
ss-R:// 链接的含义
查看>>
Caliburn.Micro 关闭父窗体打开子窗体
查看>>
powershell实现离线ip扫描
查看>>
Fragment使用findFragmentById返回null
查看>>
Logger日志级别说明及设置方法、说明
查看>>
SPOJ PGCD(莫比乌斯反演)
查看>>
第三篇 第八章泡沫灭火系统(二)
查看>>
MYSQL explain 详解
查看>>
移动web-bootstrap
查看>>
洛谷1108 低价购买
查看>>
LeetCode Next Permutation
查看>>
[转载] 杜拉拉升职记——12 话不投机
查看>>
Treap 实现名次树
查看>>
SSD 单发多框检测
查看>>
Layout 不可思议(二)—— 两侧定宽的三列布局
查看>>
Node.js学习笔记(八) --- Node.js的路由模块封装
查看>>
今天正式在博客园落家
查看>>
LeetCode 345. Reverse Vowels of a String
查看>>