SQL合併搜尋資料(UNION)
作者: fase 日期: 2010-03-23 16:59
在資料庫的查詢裏
我是很少用到將2個SQL查詢的資料合併
但偶爾還是會用到
主要的語法就是UNION
這邊就說明一下如何使用
基本上要合併2個搜尋資料,那當然2個搜尋出來的資料欄位要相同
如果不同的話,我是沒試過,應該是會出錯吧
最簡單的語法是
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales
這樣就是將Store_Information和Internet_Sales資料表裏的Date欄位搜尋出來合併
但UNION會把Date中有相同資料去合併
就是說假設裏面有2筆同是2009-01-24,在搜尋出來只會有一筆
如果想要搜尋出來有2筆的話,那就要用UNION ALL,如下
SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales
這樣就可以了
我在使用時,一直出現order by的錯誤,因為我在每個SELECT有使用ORDER BY(因為是直接COPY其它地方的程式碼來用的)
雖然拿掉就不會有錯誤,那要如何去使用order by
那就只能把UNION當子查詢來用,範例如下
SELECT * FROM (
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales
) as t3 ORDER BY t3.Date
這樣就可以了
自己寫的程式比較少用到這部分
就寫點記錄,讓自己以後用到時可以參考
想到平時有時用到PHPExcel時,就回頭來看自己的說明
還好之前有寫說明,否則人老了,要從頭腦裏翻出記憶,實在是有點困難
而回頭去看原廠的文件也是有點累,所以趁有空時寫寫記錄也是不錯用的
我是很少用到將2個SQL查詢的資料合併
但偶爾還是會用到
主要的語法就是UNION
這邊就說明一下如何使用
基本上要合併2個搜尋資料,那當然2個搜尋出來的資料欄位要相同
如果不同的話,我是沒試過,應該是會出錯吧
最簡單的語法是
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales
這樣就是將Store_Information和Internet_Sales資料表裏的Date欄位搜尋出來合併
但UNION會把Date中有相同資料去合併
就是說假設裏面有2筆同是2009-01-24,在搜尋出來只會有一筆
如果想要搜尋出來有2筆的話,那就要用UNION ALL,如下
SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales
這樣就可以了
我在使用時,一直出現order by的錯誤,因為我在每個SELECT有使用ORDER BY(因為是直接COPY其它地方的程式碼來用的)
雖然拿掉就不會有錯誤,那要如何去使用order by
那就只能把UNION當子查詢來用,範例如下
SELECT * FROM (
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales
) as t3 ORDER BY t3.Date
這樣就可以了
自己寫的程式比較少用到這部分
就寫點記錄,讓自己以後用到時可以參考
想到平時有時用到PHPExcel時,就回頭來看自己的說明
還好之前有寫說明,否則人老了,要從頭腦裏翻出記憶,實在是有點困難
而回頭去看原廠的文件也是有點累,所以趁有空時寫寫記錄也是不錯用的
標籤:
MySQL
評論: 0 |
引用: 0 |
閱讀: 6467 |
回到頁首
MySQL的utf8mb3 (2009-08-17 16:30)