mysql join union_MySQL JOIN UNION

图解

0321ffa3665606e18f58a15ed5ee4b02.png

JOIN 内连接

JOIN 默认就是 INNER JOIN 的简写,从数学的角度讲就是求两个表的交集,从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录。

FULL JOIN

MySQL 中没有 FULL JOIN,就是两表相连,可以使用 UNION 来代替

OUTER JOIN

LEFT JOIN (就是 LEFT OUTER JOIN)

两表关联,左表全部保留,右表关联不上用 NULL 表示

RIGHT JOIN (就是 RIGHT OUTER JOIN)

右表全部保留,左表关联不上的用 NULL 表示。

CROSS JOIN

cross join 是mysql中的一种连接方式,区别于内连接和外连接,对于 cross join 连接来说,其实使用的就是笛卡尔连接。在MySQL中,当 CROSS JOIN 不使用WHERE子句时,CROSS JOIN产生了一个结果集,该结果集是两个关联表的行的乘积。通常,如果每个表分别具有n和m行,则结果集将具有n*m行

如果 cross 不实用 join 的效果与 inner join 不使用 on 的结果是一样的

UNION

MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

SELECT country, name FROM Websites

WHERE country='CN'

UNION ALL

SELECT country, name FROM apps

如果不想删除重复数据,那么使用 UNION ALL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值