关联查询

144 阅读1分钟

交叉连接

就是笛卡尔积,两张表每一行和另外表的每一行连接,没有连接条件

select * from r, s;

内连接

只有满足条件的才会显示

select * from r, s on r.c = s.c;

外连接

分为左外连接和右外连接

以左外为例,左边全部显示,右边符合条件显示,不符合为空

select * from r, s left join on r.c = s.c;

联合查询

联合查询不显示重复的行,但是合一通过union all显示重复的行

把多次结果组合在一起,每次查询的列需要相同

SELECT * FROM A UNION SELECT * FROM B UNION ...

全连接

mysql不支持

但是mysql可以通过左外连接 联合查询 右外查询得到

SELECT * FROM A LEFT JOIN B ON A.id=B.id UNIONSELECT * FROM A RIGHT JOIN B ON A.id=B.id