sql server---join on、left join 、right join用法

Join

用途:
当你要从两个或者以上的表中选取结果集时,你就会用到JOIN。

例:
“Employees”表中的数据如下,(其中ID为主键):
ID                  Name
01              Hansen, Ola
02                Svendson, Tove
03               Svendson, Stephen
04               Pettersen, Kari

“Orders”表中的数据如下:

ID                 Product

01                 Printer

03                  Table
03                   Chair

用Employees的ID和Orders的ID相关联选取数据:

SELECT Employees.Name, Orders.Product

FROM Employees, Orders

WHERE Employees.ID = Orders.ID

返回结果:

Name                    Product

Hansen, Ola             Printer

Svendson, Stephen        Table

Svendson, Stephen           Chair

或者你也可以用JOIN关键字来完成上面的操作:

SELECT Employees.Name, Orders.Product

FROM Employees

INNER JOIN Orders

ON Employees.ID = Orders.ID

INNER JOIN的语法:

SELECT field1, field2, field3

FROM first_table

INNER JOIN second_table

ON first_table.keyfield = second_table.foreign_keyfield

解释:

       INNER JOIN返回的结果集是两个表中所有相匹配的数据。

LEFT JOIN的语法:

SELECT field1, field2, field3

FROM first_table

LEFT JOIN second_table

ON first_table.keyfield = second_table.foreign_keyfield

用”Employees”表去左外联结”Orders”表去找出相关数据:
SELECT Employees.Name, Orders.Product

FROM Employees

LEFT JOIN Orders

ON Employees.ID = Orders.ID

返回结果:

Name                       Product

Hansen, Ola                 Printer

Svendson, Tove

Svendson, Stephen           Table

Svendson, Stephen           Chair

Pettersen, Kari

解释:

       LEFT JOIN返回”first_table”中所有的行尽管在” second_table”中没有相匹配的数据。

RIGHT JOIN的语法:

SELECT field1, field2, field3

FROM first_table

RIGHT JOIN second_table

ON first_table.keyfield = second_table.foreign_keyfield

用”Employees”表去右外联结”Orders”表去找出相关数据:
SELECT Employees.Name, Orders.Product

FROM Employees

RIGHT JOIN Orders

ON Employees.ID = Orders.ID

返回结果:

Name                       Product

Hansen, Ola                Printer

Svendson, Stephen          Table

Svendson, Stephen           Chair

解释:



       RIGHT JOIN返回” second_table”中所有的行尽管在”first_table”中没有相匹配的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值