Latest web development tutorials

SQL FULL OUTER JOIN 關鍵字

SQL FULL OUTER JOIN 關鍵字

FULL OUTER JOIN 關鍵字只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行.

FULL OUTER JOIN 關鍵字結合了LEFT JOIN 和RIGHT JOIN 的結果。

SQL FULL OUTER JOIN 語法

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name ;

SQL FULL OUTER JOIN



演示數據庫

在本教程中,我們將使用w3big 樣本數據庫。

下面是選自"Websites" 表的數據:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 本教程      | http://www.w3big.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

下面是"access_log" 網站訪問記錄表的數據:

+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)

SQL FULL OUTER JOIN 實例

下面的SQL 語句選取所有網站訪問記錄。

MySQL中不支持FULL OUTER JOIN,你可以在SQL Server 測試以下實例。

實例

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
FULL OUTER JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;

註釋: FULL OUTER JOIN關鍵字返回左表(Websites)和右表(access_log)中所有的行。 如果"Websites" 表中的行在"access_log" 中沒有匹配或者"access_log" 表中的行在"Websites" 表中沒有匹配,也會列出這些行。