mybatis的一對多或者多對多的時候,2中方式解決,一種是巢狀select,但是會有n+1問題,不推薦;另外一種是使用一條sql,在該sql裡面使用子查詢的方式來完成。比如
select * from clazz m left join student mm on m.id = mm.clazz_id where m.id in (select t.id from clazz t limit 0, 10),但是這種方式有小問題,mysql的in這種子查詢不支援帶有limit的子查詢,也就是說上面紅色部分中帶有limit,並且在in子句中,會報錯:
[err] 1235 - this version of mysql doesn't yet support 'limit & in/all/any/some subquery'
解決該問題的是在子查詢外面在套一層,如下
select * from clazz m left join student mm on m.id = mm.clazz_id where m.id in (select id from (select t.id from clazz t limit 0, 10) as id),
這樣子就解決了n+1問題。
還有另外一種寫法也可以實現:
select * from (select * from teacher t limit 0, 2) tt left join clazz ttt on tt.id = ttt.teacher_id;
執行緒問題1
func setlistview2info mesgp 0 重新整理listview2資訊,0 單執行緒 if guictrlread checkbox1 1 or guictrlread checkbox1 1 and guictrlread combo2 1 then 單執行緒準備資料 guic...
迷宮問題1
c 語言程式設計練習1 程式設計練習 編寫程式尋找迷宮路徑。入口 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 出口x 圖1讀取迷宮檔案 如圖1所示 不限於此迷宮 以入口為開始 出口為終點 程式設計尋找一條穿越迷宮的路...
遞迴問題1
問題是這樣的 1 乙隻青蛙一次可以跳上1級台階,也可以跳上2級求該青蛙跳上乙個n級的台階總共有多少種跳法。問題再複雜點 2 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。這個是在牛客網上做程式設計訓練時碰到的第一題和第二題,題目要求的是利...