MySQL的聯(lián)合查詢[union]有什么實際的用處
問題描述
MySQL的聯(lián)合查詢[union]有什么實際的用處?
聯(lián)合查詢只要求兩張表字段數(shù)一致,但是字段名卻可以不同,能否提供一個使用它的例子?
問題解答
回答1:之前使用的例子,有多個信息模塊的數(shù)據(jù),需要展示,每個模塊表都有一個title,id,picture字段。為減少多次的查詢SQL,使用union將這些表的數(shù)據(jù)合為一個結(jié)果集返回。
SELECT id,title,picture, ’A’ AS module FROM A LIMIT 5UNION SELECT id,title,picture, ’B’ AS module FROM B LIMIT 5UNIONSELECT id,title,picture, ’C’ AS module FROM C LIMIT 5回答2:
比如說遇到一個項目,數(shù)據(jù)量超大,需要分表,同樣的結(jié)構(gòu)分了100多個表,那么去查詢的時候需要這100個表中分別進(jìn)行查詢并 union all 來獲取數(shù)據(jù)。
回答3:小技巧:
select goods '商品', case goods when 1 then price then price*1.2 when 2 then price*1.5 else 0 endfrom talbe
缺點:代碼可讀性差
select goods, price*1.2from table where goods=1unionselect goods, price*1.5from table where goods=2unionselect goods, 0from table where goods not in (1, 2)
有時候利用union可以解決一些奇怪的判斷語句.比如將報表的合計一起返回
相關(guān)文章:
1. java - 我在用Struts2上傳文件時,報以下錯誤怎么回事?2. javascript - 關(guān)于Lazyload遇到的問題3. java題目 任意一個字符串 倒置輸出,保持單詞的完整性4. javascript - 如果根據(jù)參數(shù)給table中的tr綁定不同事件5. 算法 - python 給定一個正整數(shù)a和一個包含任意個正整數(shù)的 列表 b,求所有<=a 的加法組合6. c++ - 如何正確的使用QWebEngineView?7. angular.js - react的redux和vue的vuex,angular呢8. javascript - 游戲里物體角色層次渲染邏輯和代碼怎么寫才好?9. javascript - js一個小的算法問題,找個好一點的答案。10. javascript - js 寫一個正則 提取文本中的數(shù)據(jù)
