内连接·外连接·UNION

联结

内连接——查询出来的结果肯定会满足所有的条件

自连接

select p1.prod_id,p1.prod_name 
from product AS p1,product AS p2
where p1.vend_id = p2.vend_id and p2.prod_id = 'DNTRY'

自然连接——两张表中的名称和类型完全一致的列进行内连接

  • 自然连接不必指定任何连接条件,自动连接两张表中相同名称的所有列。
  • 如果两张表中有相同名字的列,但是数据类型不一致,如果能隐式转换,则能正常连接,但如果隐式转换不成功,则报错。
  • 使用自然连接时,不能使用表名或表的别名修饰列。
select * from emp natural join dept;

外连接——查询出来的结果存在不满足条件的可能

左/右外连接(全外连接 mysql不支持)

select columns from table1 left/right join table2 on table1.col = table2.col;

笛卡儿积(cartesian product)

由没有联结条件的表关系返回的结果为笛卡儿积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。

UNION

  • 至少2个select
  • 2个select查询列数一致,顺序不要求
  • 数据类型兼容

UNION查询结果,默认情况——重复的行被自动取消

若要结果包含重复行,使用UNION ALL

如果确实需要每个条件的匹配行全部出现(包括重复行),则必须使用UNION ALL而不是WHERE

结果排序

* 在用UNION组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条SELECT语句之后。
* 对于结果集,不存在用一种方式排序一部分,而又用另一种方式排序另一 部分的情况
* 因此不允许使用多条ORDER BY子句 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值