亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

SQL UNION 運算符

在本教程中,您將學(xué)習(xí)如何組合兩個或多個SQL查詢的結(jié)果。

UNION運算符

UNION操作符用于將兩個或多個SELECT查詢的結(jié)果合并到一個結(jié)果集中。UNION操作不同于使用合并兩個表中的列的連接。union運算符將兩個源表中的所有行放在一個結(jié)果表中,從而創(chuàng)建一個新表。

以下是使用UNION組合兩個SELECT查詢的結(jié)果集的基本規(guī)則:

  • 在所有查詢中,列的數(shù)量和順序必須相同。

  • 相應(yīng)列的數(shù)據(jù)類型必須兼容。

當(dāng)滿足這些條件時,這些表是聯(lián)合兼容(union-compatible):

語法

UNION的基本語法:

SELECT column_list FROM table1_name
   UNION SELECT column_list FROM table2_name;

為了更好地理解聯(lián)合操作,我們假設(shè)在employees和customers表中存在一些假設(shè)字段,例如first_name和last_name。 請注意,這些字段實際上在我們的演示數(shù)據(jù)庫表中不存在。

+----+------------+-----------+--------+
| id | first_name | last_name | salary |
+----+------------+-----------+--------+
|  1 | Ethan      | Hunt      |   5000 |
|  2 | Tony       | Montana   |   6500 |
|  3 | Sarah      | Connor    |   8000 |
|  4 | Rick       | Deckard   |   7200 |
|  5 | Martin     | Blank     |   5600 |
+----+------------+-----------+--------+

+----+------------+-----------+----------+
| id | first_name | last_name | city     |
+----+------------+-----------+----------+
|  1 | Maria      | Anders    | Berlin   |
|  2 | Fran       | Wilson    | Madrid   |
|  3 | Dominique  | Perrier   | Paris    |
|  4 | Martin     | Blank     | Turin    |
|  5 | Thomas     | Hardy     | Portland |
+----+------------+-----------+----------+
表: employees
表: customers

讓我們執(zhí)行聯(lián)合操作來合并兩個查詢的結(jié)果。

以下語句返回所有客戶和員工的名字和姓氏:

SELECT first_name, last_name FROM employees 
UNION
SELECT first_name, last_name FROM customers;

執(zhí)行上述語句后,結(jié)果集將如下所示:

+---------------+--------------+
| first_name    | last_name    |
+---------------+--------------+
| Ethan         | Hunt         |
| Tony          | Montana      |
| Sarah         | Connor       |
| Rick          | Deckard      |
| Martin        | Blank        |
| Maria         | Anders       |
| Fran          | Wilson       |
| Dominique     | Perrier      |
| Thomas        | Hardy        |
+---------------+--------------+

默認(rèn)情況下,UNION運算符會從組合結(jié)果集中消除重復(fù)的行。這就是為什么上面的查詢只返回9行,如果您注意到名稱“Martin Blank”同時出現(xiàn)在employees和customers表中。

但是,如果要保留重復(fù)的行,可以使用ALL關(guān)鍵字,如下所示:

SELECT first_name, last_name FROM employees 
UNION ALL
SELECT first_name, last_name FROM customers;