@AlexWuYh
2019-10-31T09:04:50.000000Z
字数 5318
阅读 133
MySQL
Table: Person+----+-----------+----------+| Id | FirstName | LastName |+----+-----------+----------+| 1 | Zhang | San || 2 | Li | Si || 3 | Wang | Wu |+----+-----------+----------+Table: Address+--------+------+----------+-----------+| AddrId | Id | City | Province |+--------+------+----------+-----------+| 1 | 1 | Beijing | Beijing || 2 | 2 | Shanghai | Shanghai || 5 | 5 | Shenzhen | Guangdong |+--------+------+----------+-----------+
SELECT columnsFROM table1INNER JOIN table2ON table1.column = table2.column;

SELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonINNER JOIN AddressON Person.Id = Address.Id;// 执行结果如下:+----+-----------+----------+----------+----------+| Id | FirstName | LastName | City | Province |+----+-----------+----------+----------+----------+| 1 | Zhang | San | Beijing | Beijing || 2 | Li | Si | Shanghai | Shanghai |+----+-----------+----------+----------+----------+
SELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM Person, AddressWHERE Person.Id = Address.Id;
SELECT columnsFROM table1LEFT [OUTER] JOIN table2ON table1.column = table2.column;

SELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonLEFT OUTER JOIN AddressON Person.Id = Address.Id;// 执行结果如下:+----+-----------+----------+----------+----------+| Id | FirstName | LastName | City | Province |+----+-----------+----------+----------+----------+| 1 | Zhang | San | Beijing | Beijing || 2 | Li | Si | Shanghai | Shanghai || 3 | Wang | Wu | NULL | NULL |+----+-----------+----------+----------+----------+
SELECT columnsFROM table1RIGHT [OUTER] JOIN table2ON table1.column = table2.column;

SELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonRIGHT OUTER JOIN AddressON Person.Id = Address.Id;// 执行结果如下:+------+-----------+----------+----------+-----------+| Id | FirstName | LastName | City | Province |+------+-----------+----------+----------+-----------+| 1 | Zhang | San | Beijing | Beijing || 2 | Li | Si | Shanghai | Shanghai || NULL | NULL | NULL | Shenzhen | Guangdong |+------+-----------+----------+----------+-----------+
SELECT columnsFROM table1LEFT OUTER JOIN table2ON table1.columns = table2.columnsUNIONSELECT columnsFROM table1RIGHT OUTER JOIN table2ON table1.columns = table2.columns;

SELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonLEFT OUTER JOIN AddressON Person.Id = Address.IdUNIONSELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonRIGHT OUTER JOIN AddressON Person.Id = Address.Id;// 执行结果如下:+------+-----------+----------+----------+-----------+| Id | FirstName | LastName | City | Province |+------+-----------+----------+----------+-----------+| 1 | Zhang | San | Beijing | Beijing || 2 | Li | Si | Shanghai | Shanghai || 3 | Wang | Wu | NULL | NULL || NULL | NULL | NULL | Shenzhen | Guangdong |+------+-----------+----------+----------+-----------+
UNION ALL.
SELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonLEFT OUTER JOIN AddressON Person.Id = Address.IdUNION ALLSELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonRIGHT OUTER JOIN AddressON Person.Id = Address.Id;// 执行结果如下:+------+-----------+----------+----------+-----------+| Id | FirstName | LastName | City | Province |+------+-----------+----------+----------+-----------+| 1 | Zhang | San | Beijing | Beijing || 2 | Li | Si | Shanghai | Shanghai || 3 | Wang | Wu | NULL | NULL || 1 | Zhang | San | Beijing | Beijing || 2 | Li | Si | Shanghai | Shanghai || NULL | NULL | NULL | Shenzhen | Guangdong |+------+-----------+----------+----------+-----------+
SELECT columnsFROM table1CROSS JOIN table2;
SELECT Person.Id, Person.FirstName, Person.LastName, Address.City, Address.ProvinceFROM PersonCROSS JOIN Address;// 执行结果如下:+----+-----------+----------+----------+-----------+| Id | FirstName | LastName | City | Province |+----+-----------+----------+----------+-----------+| 1 | Zhang | San | Beijing | Beijing || 1 | Zhang | San | Shanghai | Shanghai || 1 | Zhang | San | Shenzhen | Guangdong || 2 | Li | Si | Beijing | Beijing || 2 | Li | Si | Shanghai | Shanghai || 2 | Li | Si | Shenzhen | Guangdong || 3 | Wang | Wu | Beijing | Beijing || 3 | Wang | Wu | Shanghai | Shanghai || 3 | Wang | Wu | Shenzhen | Guangdong |+----+-----------+----------+----------+-----------+