频道栏目
首页 > 数据库 > SQL Server > 正文
sql中join、innerjoin、leftjoin、rightjoin、fulljoin
2017-07-12 16:47:07      个评论    来源:Wpan的博客  
收藏   我要投稿

一、SQL join

SQL中join是用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

(1)、表A:

\

(2)、表B:

\

Select a.LastName, b.FisrtName,b.Order_No

from A inner join B

on a.id_P = B.id_P

order by B.OrderNo

结果集为:

\

分析:将A表和B表连接起来,取出两种中id_P字段相等的并且按照Order_No的顺序排列出来A表中lastname和fisrtname,以及B表中Order_No的字段值。

二、SQL join内连接

在表中存在至少一个匹配时,inner join关键字返回行。

注释:inner join 和join是相同的。

三、SQL种的四种join方式;

1、学生表student: 2学生成绩表mark:

\
\

(1)、JOIN(inner join)(等值连接):只返回两个表中 联结字段相等的行;

1)、Select s.name,m.mark

from student s,mark m

Where s.id = m.studentid

2)、select s.name,m.mark

from student s join mark m

on s.id = m.studentid

查询出的结果:

\

(2)、left join(左连接):返回包括左表中的所有记录和 右表中联结字段相等的记录;(也就是把左表中的 元组全部取出来)

Select s.name,m.mark

From student s left ouder join mark m

On s.id = m.studentid

分析:上面语句是把左表也就是student表中的元组全部选出来,尽管有些分数表示没有数据的,也选出来。

查询出的结果:

\

(3)、rigth join(右连接):返回包括右表中的所有记录 和左表中联结字段相等的记录;(即将右表的数据全 部取出,不管左表是否有匹配的数据)

select s.name,m.mark

from student s right ouder join mark m

on s.id = m.studentid

查询出的结果:

\

(4)、full join(全连接):把左右两个表的数据全部取出 来,不管是否匹配;

Select s.name,m,mark

from studet s full join mark m

on s.id = m.studentid

查处的结果:

\
点击复制链接 与好友分享!回本站首页
上一篇:plsql动态sql遇到ORA-00911:invalidcharacter错误
下一篇:详解SQLServer连接(内连接、外连接、交叉连接)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训

版权所有: 红黑联盟--致力于做实用的IT技术学习网站