ibatis的groupby的用處很多,比如把資料展示成樹結構,目錄結構等等。
ibatis的使用方法:
定義乙個 resultmap,如下。
productid,channelid還有乙個乙個resultmap,內容如下:">
productid"
/>
channelid
" />
subchannelproduct
" />
subchannelproductsql內容:" class="tchannelproduct">
select實現的效果是,將同packageid同channelid的資料放到同乙個list中去。cp.id as id,
cp.spread_start_time as spreadstarttime,
cp.spread_end_time as spreadendtime,
cp.product_page_url as productpageurl,
cp.product_target_url as producttargeturl,
cp.is_refer_valid as isrefervalid,
cp.business_md_id as businessmdid,
cp.bcid_code as bcidcode,
cp.product_type as producttype,
cp.balance_channel_id as balancechannelid,
bu.business_model_name as businessmdname,
bu.business_model_code as businessmdcode,
cp.package_id as productid
,cp.channel_id as channelid
,cp.spread_state as spreadstate,
ci.channel_name as channelname,
ci.channel_corp_type as channelcorptype,
cc.company_code as companycode,
cc.company_name_cn as companyname
from t_channel_product_ref cp,
t_channel_info ci,
t_channel_corp cc,
t_channel_busi_model bu
where cp.channel_id = ci.id and ci.corp_id = cc.company_code and cp.business_md_id = bu.id and cp.spread_state ]]> 2
因為已packageid同channelid分組,所以,雖然 值需要獲得list中資料,但是resultmap中葉需要將packageid和channelid加上去,否則沒有任何效果。。。。,即上文中,紅字部分 一定要注意,不要搞丟了。
事實上分組的實現不是在資料庫中實現,而是查出所有資料後,在ibatis的**中進行的實現,所以,如果需要進行分頁查詢。。。那就只能ibatis分組處理後,查出所需資料,然後對所有資料在**中分組了。悲催。。。
看了 好幾個帖子,搜尋相關的實現,好多貼中groupby的resultmap中,都沒有分組的那個資料的property,試了幾次才發現,應該是現在這樣的。
詭異的Group by函式
select 表2.name,count id 管理員from 表2 where 表2.name in select name from 表1 group by 表2.name 使用上面這個語句sql通常會報錯 訊息 8120,級別 16,狀態 1,第 1 行 列 表2.管理員 在選擇列表中無效,因...
group by 方法的使用
有時候,你也許需要將乙個陣列中的元素根據某種規則進行分組。那麼group by方法就是很好的選擇。先來看下面的例子 a 1.20 to a 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 a.group by 0,1,2,3,4 1,5,6,7,...
關於group by的用法
重新回顧並理解group by。首先設計一張表,表名為test 然後執行以下sql語句 select name from test group by name 獲得執行結果 可是為了能夠更好的理解 group by 多個列 和 聚合函式 的應用,我建議在思考的過程中,由表1到表2的過程中,增加乙個虛...