SQL JOIN使用方法

SQL RIGHT JOIN 关键字

HighlanderIGHT JOIN 关键字会右表 (table_name2) 这里回来全部的行,就算在左表
(table_name1) 中未有相称的行。

*SQL INNER JOIN 关键字

(转自W3School相关学科:http://www.w3school.com.cn,W3School是精确的在线教程,简洁高效!)

普拉多IGHT JOIN 关键字语法

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

解说:在某个数据库中, OdysseyIGHT JOIN 称为 EscortIGHT OUTE库罗德 JOIN。

在表中设有至少八个卓越时,INNE凯雷德 JOIN 关键字重返行。


原本的表 (用在例子中的):

“Persons” 表:

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

“Orders” 表:

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

INNE卡宴 JOIN 关键字语法

上面列出分化的SQL JOIN类型,以及他们中间的距离:

右连接(RIGHT JOIN)实例

前段时间,大家盼望列出具备的定单,以及定购它们的人 – 若是有的话。

你能够使用下边包车型客车 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

结果集:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
    34764

奥德赛IGHT JOIN 关键字会从右表 (Orders) 这里回来全部的行,即便在左表
(Persons) 中并未有相称的行。

SELECT column_name(s)

JOIN:表示假诺表中最少有一个合作,则重返行

FROM table_name1

LEFT JOIN:尽管右表中并未相配,也从左表再次来到全数的行

INNER JOIN table_name2

卡宴IGHT JOIN:固然左表中绝非相配,也从右表再次回到全部的行 

ON table_name1.column_name=table_name2.column_name

FULL JOIN:只要个中二个表中存在至极,就重返行

注释:INNE凯雷德 JOIN 与 JOIN 是同样的。

一、inner join 关键字

本来的表 (用在例子中的):

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

“Persons” 表:

注解:inner join 与 join 是同等的。
原始的表(用在例子中):

 

“Persons”表

Id_P
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

 

 

“Orders” 表:

“Orders”表

 

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65
Id_O
OrderNo
Id_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65

 

 

内连接(inner join)实例

内连接(INNER JOIN)实例

现行反革命,大家意在列出全部人的预订。能够选择下边包车型地铁select语句:

当今,我们期望列出全体人的预购。

select Persons.LastName, Persons.FirstName, Orders.OrderNo
from Persons
inner join Orders
on Persons.Id_P=Orders.Id_P
order by Persons.LastName

你能够行使下边包车型大巴 SELECT 语句:

结果集:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

FROM Persons

 

INNER JOIN Orders

INNERAV4 JOIN 关键字在表中设有至少五个同盟时重回行。要是 “Persons” 中的行在
“Orders” 中未有相配,就不会列出那一个行。

ON Persons.Id_P=Orders.Id_P

 二、left join 关键字

ORDER BY Persons.LastName

澳门金沙vip,left join
关键字会从左表(table_name1)这里回来全体的行,固然在右表(table_name2)中绝非相配的行。

结果集:

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

 

讲明:在少数数据库中, LEFT JOIN 称为 LEFT OUTEENVISION JOIN。

LastName
FirstName
OrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678

固有的表(用在例子中的):

 

“Persons”表:

INNE翼虎 JOIN 关键字在表中存在至少八个一双两好时再次来到行。尽管 “Persons” 中的行在
“Orders” 中未有相称,就不会列出这么些行。

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

 

 

SQL LEFT JOIN 关键字

“Orders” 表:

LEFT JOIN 关键字会从左表 (table_name1) 这里回来全体的行,纵然在右表
(table_name2) 中尚无相称的行。

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

LEFT JOIN 关键字语法

 

SELECT column_name(s)

今天,大家意在列出具备的人,以及他们的订货(要是有的话)。

FROM table_name1

能够行使下边的select语句:

LEFT JOIN table_name2

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

ON table_name1.column_name=table_name2.column_name

结果集:

注释:在某个数据库中, LEFT JOIN 称为 LEFT OUTEPRADO JOIN。

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
Bush George  

原有的表 (用在例子中的):

 

“Persons” 表:

LEFT JOIN 关键字会从左表 (Persons) 这里回来全数的行,就算在右表 (Orders)
中未有匹配的行。