联合/连接查询

  • 联合查询

概念:将多个查询的结果合并在一起,字段数不变,多个查询的记录数合并。

基本语法:select 语句 Union [distinct/all] select 语句;

Order by的使用
基本语法:(select 语句 order by 字段 [asc/desc] limit n,m) Union [distinct/all] (select 语句 order by 字段 [asc/desc] limit n,m);

注意:联合查询中使用order by必须在select 语句前后加括号且必须有limit限制。

  • 连接查询

交叉连接(产生笛卡尔积)
基本语法:select */字段列表 from 表1 cross join 表2; 

内连接
inner join,从一张表中取出所有的记录去另外一张表中匹配,利用匹配条件进行匹配,成功则保留,失败就放弃。

基本语法: select */字段列表 from 表1 inner join 表2 on 匹配条件;

注意:没有匹配条件等于交叉查询。 

外连接
outer join,按照某一张表作为主表,拿主表每一条记录去匹配另一张表的每一条记录,匹配成功保留,失败也保留(从表数据为NULL)。 
左外连接:left join,左表为主表
右外连接:right join,右表为主表

基本语法:
左连接:select */字段列表 from 主表 left join 从表 on 连接条件;


右连接:select */字段列表 from 从表 right join 主表 on 连接条件;

Using 关键字

用于连接查询中替换对应的on关键字,进行条件匹配

基本语法 :select */字段列表 from 从表 [inner/left/right] join 主表 using(同名字段列表);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章