功能:
使用mysql中union all 將2個表中的數據查詢結果合並到一個返回結果中。再針對結果統一排序操作等。(注:2個表返回的列名必須一致)
語句如下:
SELECT
表1.字段,
表2.字段,
...
FROM
(SELECT
表.字段1,
表.字段2
FROM
表
WHERE
條件
) 表1
UNION ALL
(SELECT
表.字段1,
表.字段2
FROM
表
WHERE
條件
) 表2
WHERE
相關條件
ORDER BY
排序條件等
原文:https://blog.csdn.net/u013109978/article/details/69230196
mysql sql語句多表合並UNION ALL和UNION

select
d1.ID,CAST(d1.ID AS CHAR) AS intId, d1.CODE_TYPE, d1.CODE, d1.CODE_IMG, d1.VALUE
from m_dict_code d1
where d1.CODE_TYPE in('USER_TYPE','addSupers')
UNION
select 0,v.ID,v.TYPE,v.`CODE`,v.DESCRIPTION,v.VALUE_STRING from m_variable as v where v.type='tequan'
limit 1,20

說明:
1.CAST (expression AS data_type)字段類型轉換函數

CAST (表名.字段名 AS 類型)
注意:
1.mysql int轉varchr會出現問題
錯誤: CAST (表名.字段名 AS varchar)
正確:CAST (表名.字段名 AS char)或concat(d1.ID,'')
說明:
將Int 轉為varchar經常用 concat函數,比如concat(8,’′)
將varchar 轉為Int 用 cast(a as signed)

2.UNION和UNION all 多表合並函數
問題:
1.兩表字段類型不一致 用cast或concat函數解決
2.兩表列屬性數量不一致問題 select后跟相同類型字段值 (int類型)0或(字符串)''解決問題
3.(自動去重)UNION (允許重復的值)UNION all
mysql api:http://www.mysqlab.net/docs/view/refman-5.1-zh/chapter/functions.html
