在 mysql 中,union 運算符合并來自多個表或子查詢的結果集,只返回唯一的結果行。它主要用于合并互不相交的結果集,并允許通過 union all 保留重復行。
MySQL 中 UNION 用法
UNION 運算符在 MySQL 中用于合并來自多個表或子查詢的結果集。它只返回唯一的結果行,而不會重復相同的行。
語法:
<code>SELECT 列名1, 列名2, ... FROM 表名1 UNION SELECT 列名1, 列名2, ... FROM 表名2 ... [UNION ALL]</code>
登錄后復制
參數:
列名:要合并的列名。它們必須具有相同的順序和數據類型。
表名:要合并結果集的表或子查詢。
UNION ALL(可選):保留重復行。
用法:
UNION 主要用于合并來自不同表或子查詢的互不相交的結果集。它只保留唯一的結果行。
例如,要合并表 customers
和 orders
的結果集,顯示每個客戶的信息和訂單信息,可以使用以下查詢:
<code>SELECT * FROM customers UNION SELECT * FROM orders;</code>
登錄后復制
如果要保留重復行,可以使用 UNION ALL
:
<code>SELECT * FROM customers UNION ALL SELECT * FROM orders;</code>
登錄后復制
注意:
UNION 運算符僅合并具有相同列數和數據類型的結果集。
如果列名不同,需要使用別名或通配符(*)來匹配它們。
如果列具有不同的數據類型,需要使用轉換函數(如 CAST()
或 CONVERT()
) 來確保它們兼容。
UNION 運算符不考慮排序順序,除非使用 ORDER BY
子句。