首先, 我创建了两个表 A 和 B, 并插入数据
CREATE TABLE `test`.`a` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR (10),
`ageId` INT (3),
PRIMARY KEY (`id`)
) ;
CREATE TABLE b(
id INT NOT NULL AUTO_INCREMENT,
age INT,
PRIMARY KEY (id)
)
INSERT b VALUES(1, 18),(2, 38),(3, 38);
INSERT a VALUES(1,"老王", 1);
INSERT a VALUES(2,"老李", 2);
INSERT a VALUES(3,"老张", NULL);
A表:
B表:
内连接
毫无疑问, 内连接就是自然连接, 最普通的连接, 比如等值连接.
select *
from a
inner join b
on a.`ageId` = b.`id`;
结果如图
右连接
SELECT *
FROM a
RIGHT OUTER JOIN b
ON a.`ageId` = b.`id`;
结果如图
左连接
SELECT *
FROM a
left OUTER JOIN b
ON a.`ageId` = b.`id`;
结果如图
总结
左外连接就是A和B的交集再并上A的所有数据
右外连接就是A和B的交集再并上B的所有数据
总之, 哪个表的数据重要, 就把哪个表放前边使用左连接就好了(反正我是这样用的 ^ _ ^ )