首先說明一下union和union all區別
union: 對兩個結果集進行並集操作, 不包括重復行,相當於distinct, 同時進行默認規則的排序;
union all: 對兩個結果集進行並集操作, 包括重復知行, 即所有的結果全部顯示, 不管是不是重復;
union內部的select語句必須擁有相同數量的列,列也必須擁有相似的數據類型,同時,每條select語句中列的順序必須相同
場景實例:現登錄功能要從用戶表A和用戶表B兩表中進行篩選
代碼實現:
select * from ( select [EName],[LoginName],[LoginPwd],2 as ActionID from 表A UNION select [EName],[LoginName],[LoginPwd],ActionID from 表B )emptb
篩選用戶名 EName 為 “張三” 的用戶
代碼實現:
select * from ( select [EName],[LoginName],[LoginPwd],2 as ActionID from 表A UNION select [EName],[LoginName],[LoginPwd],ActionID from 表B )emptb where emptb.EName="張三"