SQL INNER JOIN 關鍵字
在表中存在至少一個匹配時,INNER JOIN 關鍵字返回行。
INNER JOIN 關鍵字文法
SELECT column_name(s)FROM table_name1INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注釋: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 |
"Orders" 表:
| Id_O |
OrderNo |
Id_P |
| 1 |
77895 |
3 |
| 2 |
44678 |
3 |
| 3 |
22456 |
1 |
| 4 |
24562 |
1 |
| 5 |
34764 |
65 |
內串連(INNER JOIN)執行個體
現在,我們希望列出所有人的定購。
您可以使用下面的 SELECT 語句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName
結果集:
| LastName |
FirstName |
OrderNo |
| Adams |
John |
22456 |
| Adams |
John |
24562 |
| Carter |
Thomas |
77895 |
| Carter |
Thomas |
44678 |
INNER JOIN 關鍵字在表中存在至少一個匹配時返回行。如果 "Persons" 中的行在 "Orders" 中沒有匹配,就不會列出這些行。
--備忘:建立Persons表和Orders表create table Persons(Id_P int identity(1,1),LastName nvarchar(50),FirstName nvarchar(50),Address nvarchar(50),City nvarchar(50),primary key (Id_P));insert into Persons(LastName,FirstName,Address,City) values('Adams','Johm','Oxford Street','London');insert into Persons(LastName,FirstName,Address,City) values('Bush','George','Fifth Avenue','New York');insert into Persons(LastName,FirstName,Address,City) values('Carter','Thomas','Changan Street','Beijing');create table Orders(Id_O int identity(1,1),OrderNo int,Id_P int,primary key (Id_O));insert into Orders(OrderNo,Id_P) values(7895,3);insert into Orders(OrderNo,Id_P) values(44678,3);insert into Orders(OrderNo,Id_P) values(22456,1);insert into Orders(OrderNo,Id_P) values(24562,1);insert into Orders(OrderNo,Id_P) values(34764,65);