在開發中,有些資料的儲存可能涉及到分庫分表,查詢的時候,可能需要查詢所有的分表,這個時候,就需要用到union或者union all,下面介紹一下union的用法以及與union all的區別:
union操作符用於合併兩個或多個select語句的結果集,這裡需要注意的是:union內部的select語句必須擁有相同數量的
列,列也必須擁有相似的資料型別,同時,每條select語句中列的順序必須相同。
union語法:
select column_name(s)
from table_name1
union
select column_name(s)
from table_name2
union操作符合併的結果集,不會允許重複值,如果允許有重複值的話,使用union all.
union all語法:
select column_name(s)
from table_name1
union all
select column_name(s)
from table_name2
union結果集中的列名總等於union中第乙個select語句中的列名。
這裡我就不舉例子說明,重點總結下我在專案開發中遇到的問題:1、由於需要合併十個select語句,寫法上需要用到sql中;.2、在寫sql語句是,用到了order by,要用括號區分開,要不會報錯。
sql語句寫法:
<
select
id= "getfourteenhotpost" parametertype=
"map" resultmap=
"productcommentsinfoandroid">
select t.comments_id,t.product_id,t.comment,t.order_path
from (
"tablenames" item=
"item" separator=
"union all">
(select c.comments_id,c.product_id,c.comment,i.order_path,c.p_index,c.t_index,c.title,c.time
from $
as c
left
join
`gshop_comments_img`
as i
on c.comments_id = i.comments_id
where c.object_type=
2and c.display=
1and c.is_show=
1and c.t_index=
1group
by c.product_id
order
by c.p_index
asc,c.t_index
desc,c.title
desc,c.time
desc
limit
14)
) tgroup
by t.product_id
order
by t.p_index
asc,t.t_index
desc,t.title
desc,t.time
desc
limit
14
UNION 和UNION ALL 的區別
在資料庫中,union 和union all 關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union 在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表 ...
UNION和UNION ALL的區別
關鍵字 union 和union all 的區別 出處 在資料庫中,union和union all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用...
UNION 和UNION ALL 的區別
在資料庫中,union 和union all 關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union 在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表 ...