本文转载自公众号:媛测,作者:yuance。 本文仅在 Mysql 中验证,其它数据库中可能会有差异。
多表查询,即同时查询两张表或更多表,包括交叉连接、内连接、左/右外连接、合并等。 在使用时: 交叉连接查询:select * from a, b;
 内/外连接内连接查询:可以有效的去除笛卡尔集现象 有两种方式:隐式内连接,显式内连接
'隐式内连接:' select a.xx, a.xxx, b.xxx from A a, B b where a.xx = b.xx;
或者:
select a.*, b.* from A a, B b where a.xx = b.xx;
'显式内连接:' select * from A a inner join B b on a.xx = b.xx; (其中 inner 可以省略)
外连接查询:有两种方式:左外连接,右外连接 左外连接:简称左连接 左边表的内容全部显示,然后匹配右边的表 如果右边的表匹配不到,则空 即返回两张表共有的部分,及左表中独有的信息
右外连接:简称右连接 右边表的内容全部显示,然后匹配左边的表 如果左边的表匹配不到,则空 即返回两张表共有的部分,及右表中独有的信息
(其中,out 可省略) '左外连接:' select * from A left outer join B on 条件
'右外连接:' select * from A right out join B on 条件
总结: 内连接:两表交集 左外连接:左边表,包含两表交集 右外连接:右边表,包含两表交集
select a.field1, b.field2... from tab1 a inner/left/right join tab2 b on a.field1 = b.field1;
Union 合并UNION:  UNION ALL:
|