MySQL的各种连接(内左右)

目录

  • MySQL的各种连接
    • 前提
    • 1.内连接
    • 2.左连接(左外连接)
    • 3.右连接(右外连接)
    • 4.全连接(全外连接)

MySQL的各种连接

数据库表:a_table、b_table
主题:内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)

前提

建表语句:

CREATE TABLE `a_table` (
  `a_id` int(11) DEFAULT NULL,
  `a_name` varchar(10) DEFAULT NULL,
  `a_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `b_table` (
  `b_id` int(11) DEFAULT NULL,
  `b_name` varchar(10) DEFAULT NULL,
  `b_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

表的测试数据:
MySQL的各种连接(内左右)_第1张图片

1.内连接

关键字:inner join on
语句:

select * from a_table a inner join b_table b on a.a_id = b.b_id;

执行结果:
MySQL的各种连接(内左右)_第2张图片
说明:
组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。
MySQL的各种连接(内左右)_第3张图片

2.左连接(左外连接)

关键字:left join on / left outer join on
语句:

select * from a_table a left join b_table b on a.a_id = b.b_id;

执行结果:
MySQL的各种连接(内左右)_第4张图片
说明:
left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。
左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
MySQL的各种连接(内左右)_第5张图片

3.右连接(右外连接)

关键字:right join on / right outer join on
语句:

select * from a_table a right outer join b_table b on a.a_id = b.b_id;

执行结果:
MySQL的各种连接(内左右)_第6张图片
说明:
right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。
与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
MySQL的各种连接(内左右)_第7张图片

4.全连接(全外连接)

未完待续

你可能感兴趣的:(数据库)