SQL学习笔记(04)_JOIN

云想衣裳花想容,春风拂槛露华浓。
若非群玉山头见,会向瑶台月下逢。

清平调.其一


SQL 连接(JOIN)

join 关键字 主要基于两个或多个表表的共同字段,把来自两个或多个表的行结合起来查询我们希望得到的特定结果
常用的用法主要有:inner joinleft joinright joinouter join 等。

下面演示数据库内容选自菜鸟教程为参考:

-- 选自 "Websites" 表的数据
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+
-- access" 网站访问记录表的数据
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+

注意,“Websites” 表中的 “id” 列指向 “access” 表中的字段 “site_id”。上面这两个表是通过 “site_id” 列联系起来的

先实际操作一下:

SELECT w.id,w.name,a.count,a.date from websites as w
INNER JOIN access as a
on w.id=a.site_id

执行结果:看起来有点乱,排一下序。
在这里插入图片描述

SELECT w.id,w.name,a.count,a.date from websites as w
INNER JOIN access as a
on w.id=a.site_id
ORDER BY id ASC

结果:看起来舒服多了
在这里插入图片描述

此语句主要是使用了内连接INNER JOIN,如下图,它只取两张表同时满足条件的行;

不同的 SQL JOIN

  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

MySQL从删库到跑路~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值