MySQL的聯合查詢[union]有什么實際的用處
問題描述
MySQL的聯合查詢[union]有什么實際的用處?
聯合查詢只要求兩張表字段數一致,但是字段名卻可以不同,能否提供一個使用它的例子?
問題解答
回答1:之前使用的例子,有多個信息模塊的數據,需要展示,每個模塊表都有一個title,id,picture字段。為減少多次的查詢SQL,使用union將這些表的數據合為一個結果集返回。
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:
比如說遇到一個項目,數據量超大,需要分表,同樣的結構分了100多個表,那么去查詢的時候需要這100個表中分別進行查詢并 union all 來獲取數據。
回答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可以解決一些奇怪的判斷語句.比如將報表的合計一起返回
相關文章:
1. sql語句 - 如何在mysql中批量添加用戶?2. shell - Update query wrong in MySQL3. 怎么php怎么通過數組顯示sql查詢結果呢,查詢結果有多條,如圖。4. mysql - PHP定時通知、按時發布怎么做?5. php - 數據庫表如果是null怎么替換為其他字段的值6. 事務 - mysql共享鎖lock in share mode的實際使用場景7. SQLAlchemy 訪問Mysql數據庫彈出Warning,VARIABLE_VALUE,如何解決?8. mysql - JAVA怎么實現一個DAO同時實現查詢兩個實體類的結果集9. mysql - 數據庫建字段,默認值空和empty string有什么區別 11010. mysql建表報錯,查手冊看不懂,求解?
