SQL中的UNION是用于合并兩個(gè)或多個(gè)SELECT語(yǔ)句的結(jié)果集的操作符。它將兩個(gè)或多個(gè)查詢的結(jié)果集合并為一個(gè)結(jié)果集,并去除重復(fù)的行。
UNION的語(yǔ)法如下:
SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
在這個(gè)語(yǔ)法中,我們首先使用SELECT語(yǔ)句從table1中選擇column1、column2等列,然后使用UNION操作符將其與從table2中選擇的列合并。合并的結(jié)果將包含兩個(gè)SELECT語(yǔ)句的結(jié)果集,并且重復(fù)的行將被去除。
需要注意的是,UNION操作符要求兩個(gè)SELECT語(yǔ)句的列數(shù)和數(shù)據(jù)類型必須相同或兼容。如果列數(shù)不同,可以使用NULL填充缺失的列。如果數(shù)據(jù)類型不兼容,可能會(huì)導(dǎo)致錯(cuò)誤。
UNION操作符默認(rèn)會(huì)去除重復(fù)的行。如果想要包含重復(fù)的行,可以使用UNION ALL操作符。UNION ALL不會(huì)去除重復(fù)的行,而是將所有的行都包含在結(jié)果集中。
下面是一個(gè)示例,展示了UNION的用法:
SELECT name, age FROM students
UNION
SELECT name, age FROM teachers;
這個(gè)示例中,我們從students表中選擇name和age列,然后將其與從teachers表中選擇的name和age列合并。合并的結(jié)果將包含所有學(xué)生和教師的姓名和年齡,并且重復(fù)的行將被去除。
總結(jié)一下,UNION是SQL中用于合并兩個(gè)或多個(gè)SELECT語(yǔ)句結(jié)果集的操作符。它可以將多個(gè)查詢的結(jié)果合并為一個(gè)結(jié)果集,并去除重復(fù)的行。如果想要包含重復(fù)的行,可以使用UNION ALL操作符。