sql99 连接查询

Posted beautiful7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql99 连接查询相关的知识,希望对你有一定的参考价值。

sql99 连接查询

又叫多表查询四、SQL99语法 1、内连接

相当于查多个表的公共部分

语法: select 查询列表 from 表1 别名

【连接类型】join 表2 别名

on 连接条件

where 筛选条件 group by 分组列表 having 分组后的筛选 order by 排序列表

 

分类:

内连接 inner

外连接:

左外连接 left [outer]

右外连接 right[outer]

全外 full[outer]

交叉连接 : cross

 

1内连接

分类:

1 等值连接:

例子

select last_name,department_name
from employees e
inner join departments d
on e.xxx = d.xxx
特点:
inner可以生省略
筛选条件在where后面
连接条件在on后面

 

 

2 非等值连接

就把等值连接里面的on的限制条件从等于改为其它符号

3 自连接

 

select last_name,department_name
from employees e
inner join employees d
on e.xxx = d.xxx

 

 

外连接

语法:

select 查询列表
from 表1 别名
left|right|fullouterjoin 表2 别名 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表

 

应用场景:

用来查询一个表里有,另一个表里没有的情况。

外连接可以看作是 = 内连接+匹配不上的NULL值

特点:

1.外连接的查询结果为主表中的所有记录

如果主表和从表匹配则完全显示

如果不匹配则显示NULL

 

 

左右外连接

select 查询列表
from 表1 别名
left|rightouterjoin 表2 别名 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表

 

特点:

1.如果是左连接 left 左边的表是主表

如果是右连接right右边的表是主表

2 左外和右外交换两个表顺序,实现同样的效果

 

全外连接

mysql不支持

 

交叉连接

就是一个笛卡尔乘积

select b.*,p.*
from table1 b
cross join table2 p;

 

 

以上是关于sql99 连接查询的主要内容,如果未能解决你的问题,请参考以下文章

sql99和sql92分别实现连接和子查询和分页查询

lyt经典版MySQL基础——进阶6:连接查询-sql99语法-内连接外连接交叉连接

08_MySQL DQL(SQL99标准)_多表连接查询中的内连接

mysql sql99语法 内连接等值连接

mysql sql99语法 内连接非等值连接

MySQL连接查询