MySQL 笔记 (10) 连接查询(join)

将多个表的字段进行连接,可以指定连接条件。

内连接(inner join)

  • 默认就是内连接,可省略inner。
  • 只有数据存在时才能发送连接。即连接结果不能出现空行。

on 表示连接条件。其条件表达式与where类似。也可以省略条件(表示条件永远为真)
也可用where表示连接条件。
还有 using, 但需字段名相同。 using(字段名)

  • 交叉连接 cross join
    即,没有条件的内连接。
1
select * from tb1 cross join tb2;

外连接(outer join)

如果数据不存在,也会出现在连接结果中。

  • 左外连接 left join
    如果数据不存在,左表记录会出现,而右表为null填充
  • 右外连接 right join
    如果数据不存在,右表记录会出现,而左表为null填充

自然连接(natural join)

自动判断连接条件完成连接。
相当于省略了using,会自动查找相同字段名。
natural join
natural left join
natural right join

1
select info.id, info.name, info.stu_num, extra_info.hobby, extra_info.sex from info, extra_info where info.stu_num = extra_info.stu_id;

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :