mysql也允許執行多個查詢(多條select語句),並將結果作為單個查詢結果集返回。這些組合查詢通常稱為並(union)或復合查詢(compound query)。
有兩種基本情況,其中需要使用組合查詢:
在單個查詢中從不同的表返回類似結構的資料;
對單個表執行多個查詢,按單個查詢返回資料。
可用union操作符來組合數條sql查詢。
17.2.2 union規則
union必須由兩條或兩條以上的select語句組成,語句之間用關鍵字union分隔。
union中的每個查詢必須包含相同的列、表示式或聚集函式。
列資料型別必須相容:型別不必完全相同,但必須是dbms可以隱含地轉換的型別。
17.2.3 包含或取消重複的行
union從查詢結果集中自動去除了重複的行(換句話說,它的行為與單條select語句中使用多個where子句條件一樣)
這是union的預設行為,但是如果需要,可以改變它。事實上,如果想返回所有匹配行,可使用union all而不是union。
17.2.4 對組合查詢結果排序
select語句的輸出用order by子句排序。在用union組合查詢時,只能使用一條order by子句,它必須出現在最後一條select語句之後。於結果集,不存在用一種方式排序一部分,而又用另一種方式排序另一部分的情況,因此不允許使用多條order by子句。
mysql必知必會 mysql必知必會(四)
十四 理解子查詢 1 通過子查詢過濾 這本書在所有的章節都關連到了資料庫表,訂單資料是儲存在兩個表中,orders表儲存著 訂單號碼 顧客id和訂單日期。個人的訂單列表關連著orderitems表,訂單表沒有儲存顧客資訊,它只是儲存著顧客id,這實際的顧客資訊是儲存在customers表中。現在假設...
mysql的必知必會 mysql 必知必會 筆記
好久沒有寫了。1 show columns from table 等同於describe table顯示的是表的結構。而select from table 則顯示的是整個表中插入的資料。2 select distinct c1,c2 from table除非列不相同,否則所有行將被檢索出來,即不能對...
mysql必知必會
一周了,總想寫點什麼,有的時候進步真的很難在一周顯示出來,週三的時候,我跟我的領導說,好快啊,又週三了,不知不覺,他說是啊,現在對於他來說,有時候他過一天可能跟我過一周的感覺差不多,每天都在忙,時間過的特別快,也沒有感覺做出來點什麼,當然實際肯定是怎麼做了一些東西的,是否我以後也會如此呢?說說技術把...