UNION、UNION ALL和EXISTS
1、在使用union命令時,所有被選取的列的數據類型應該是相同的。
2、union與union all的區別:
???union會把相同的值過濾掉,也就是說如果使用了union那么查詢結果中是沒有重復的值的此時的它就相當于distinct。
???union all與union相反,它會把所有的數據都顯示出來,當然也包括重復的記錄。
3、在使用union時要注意:
(1)、只可以在最后一條select語句中使用order by?和compute子句,這樣影響到最終合并結果的排序和計數匯總。
(2)、group by?和having子句可以在單獨一個select查詢中使用,其不影響最終結果。
4、在使用連接時要注意:
On只進行連接操作,where只過濾中間表的記錄。
5、對兩表連接查詢選擇方式的依據進行總結:
(1)、查兩表關聯列相等的數據用內連接。(join…on)
(2)、左表是右表的子集時用右外連接。(right join…on)
(3)、右表是左表的子集時用左外連接。(left join…on)
(4)、右表和左表彼此有交集但彼此互不為子集時候用全外連接。(full outer join…on)
(5)、求差操作的時候?用聯合查詢。(uniion)
?
6、EXISTS子查詢注意事項
(1)、由EXISTS引出的子查詢,其目標列表達通常都用*,因為EXISTS的子查詢只返回真值或者假值,給出列名亦無實際意義。
?
本文轉自sucre03 51CTO博客,原文鏈接:http://blog.51cto.com/sucre/416800,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的UNION、UNION ALL和EXISTS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSH框架中怎么使用Hibernate查
- 下一篇: 截取字符串的问题