MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處
問題描述
MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處?
聯(lián)合查詢只要求兩張表字段數(shù)一致,但是字段名卻可以不同,能否提供一個(gè)使用它的例子?
問題解答
回答1:之前使用的例子,有多個(gè)信息模塊的數(shù)據(jù),需要展示,每個(gè)模塊表都有一個(gè)title,id,picture字段。為減少多次的查詢SQL,使用union將這些表的數(shù)據(jù)合為一個(gè)結(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:
比如說遇到一個(gè)項(xiàng)目,數(shù)據(jù)量超大,需要分表,同樣的結(jié)構(gòu)分了100多個(gè)表,那么去查詢的時(shí)候需要這100個(gè)表中分別進(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
缺點(diǎn):代碼可讀性差
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)
有時(shí)候利用union可以解決一些奇怪的判斷語句.比如將報(bào)表的合計(jì)一起返回
相關(guān)文章:
1. Python處理Dict生成json2. (python)關(guān)于如何做到按win+R再輸入文件文件名就可以運(yùn)行?3. 想練支付寶對接和微信支付對接開發(fā)(Java),好像個(gè)人不可以,怎么弄個(gè)企業(yè)的4. mysql - Sql union 操作5. java - Mybatis 數(shù)據(jù)庫多表關(guān)聯(lián)分頁的問題6. 急急急!!!求大神解答網(wǎng)站評論問題,有大神幫幫小弟嗎7. javascript - 按鈕鏈接到另一個(gè)網(wǎng)址 怎么通過百度統(tǒng)計(jì)計(jì)算按鈕的點(diǎn)擊數(shù)量8. python - 如何使用websocket在網(wǎng)頁上動(dòng)態(tài)示實(shí)時(shí)數(shù)據(jù)的折線圖?9. python - 請問這兩個(gè)地方是為什么呢?10. python2.7 - python 正則前瞻 后瞻 無法匹配到正確的內(nèi)容
