mysql之union

今天來寫寫union的用法及一些需要注意的。

 union:聯合的意思,即把兩次或多次查詢結果合併起來。

 要求:兩次查詢的列數必須一致

 推薦:列的類型可以不一樣,但推薦查詢的每一列,想對應的類型以一樣

 可以來自多張表的數據:多次sql語句取出的列名可以不一致,此時以第一個sql語句的列名爲準。

 如果不同的語句中取出的行,有完全相同(這裏表示的是每個列的值都相同),那麼union會將相同的行合併,最終只保留一行。也可以這樣理解,union會去掉重複的行。

如果不想去掉重複的行,可以使用union all。

 如果子句中有order by,limit,需用括號()包起來。推薦放到所有子句之後,即對最終合併的結果來排序或篩選。

如:(select * from a order by id) union (select * from b order id);

在子句中,order by 需要配合limit使用纔有意義。如果不配合limit使用,會被語法分析器優化分析時去除。

每天進步一點點。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章