码迷,mamicode.com
首页 > 数据库 > 详细

sql99 连接查询

时间:2020-06-12 20:11:59      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:支持   实现   employees   排序   sql   code   右连接   主表   列表   

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 连接查询

标签:支持   实现   employees   排序   sql   code   右连接   主表   列表   

原文地址:https://www.cnblogs.com/beautiful7/p/13109724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!