[MYSQL]mysql將兩個表結果合並到一起


功能:

        使用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

https://www.cnblogs.com/awzf/p/9803559.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM