如下:
CREATE TABLE tb (
id INT PRIMARY KEY,
NAME VARCHAR (20)
) ;
CREATE TABLE ta (
id INT PRIMARY KEY,
NAME VARCHAR(20),、
tb_id INT
);
INSERT INTO tb VALUES(1,'财务部'),(2,'人事部'),(3,'科技部'),(4,'司法部'),(5,'行政部'); INSERT INTO ta VALUES (1,'刘备',1),(2,'关羽',2),(3,'张飞',3),(4,'张三',5),(5,'张七',6),(6,'张八',6),(7,'张九',6),(8,'张十',6);(9,'张十一',6); #内连接:查询两张表中都有的关联数据,相当于利用条件从笛卡尔积结果中筛选出了正确的结果。
SELECT * FROM ta INNER JOIN tb ON ta.tb_id = tb.id; #内连接等同于
SELECT * FROM ta,tb WHERE ta.`tb_id`=tb.`id`; #右外连接:在内连接的基础上增加右边有左边没有的结果
SELECT * FROM ta RIGHT JOIN tb ON ta.tb_id = tb.id; #左外连接:在内连接的基础上增加左边有右边没有的结果
SELECT * FROM ta LEFT JOIN tb ON ta.tb_id = tb.id; #全外连接:在内连接的基础上增加左边有右边没有的和右边有左边没有的结果
SELECT * FROM ta LEFT JOIN tb ON ta.tb_id = tb.id
UNION
SELECT * FROM ta RIGHT JOIN tb ON ta.tb_id = tb.id;