TOP

SQL Sef Join (自连接)

SQL Self Join 说明

自联接是一种常规联接,其中表与其自身联接。


Sef Join 语法

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition

T1和T2是同一个表的不同别名。

演示数据库

在本教程中,我们将使用著名的示例数据库“Northwind”。

以下是表“Customers”(“客户”)中的示例。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL Self Join 示例

以下 SQL 语句从一个城市 (City) 选择客户:

Run SQLSELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City 
FROM Customers A, Customers B 
WHERE A.CustomerID <> B.CustomerID 
AND A.City = B.City 
ORDER BY A.City
MySQL 方言使用“!=”而不是“<>”。