2.思路改進
查詢出該商戶的所有訂單之後,把訂單的id組成乙個陣列「integer ids」,然後利用
idin(
"ids"
item="id" separator=",">id)
一次性執行所有的查詢語句。
問題:在程式裡我得先查詢資料庫得到所有訂單,再根據查詢的訂單集合構建「待查詢訂單陣列(integer ids)」,依然需要連線2次資料庫,執行2次查詢,效率有所提高,但是還有改進空間。
3.優化方案
直接根據「商戶id(businessid)」進行多表聯查,所有的操作都在資料庫中完成,**如下:
"searchbypage" parametertype="comment" resultmap="commentmap">
select co.id,co.order_id,co.content,co.star,co.createtime,u.phone,b.title
from `comment` co,orders o,`user` u,business b
and co.order_id=o.id
and o.user_id=u.id
and o.business_id=b.id
"id != null">and co.id=#
"orderid != null">and co.order_id=#
"searchkey != null and !"".equals(searchkey.trim())">
and (
b.title like concat('%',#,'%')
or u.phone=#
)"business != null and business.id != null">and b.id=#
order by co.createtime asc
優點:一次連線資料庫,得出結果,減少了**量,效率得到了提高!
問題:方案3與方案2在大資料量的情況下,誰更快?這一點暫無法得到驗證!
mysql 多表聯查 MySQL的多表聯查
今天是周二,我們一起來研究下mysql的多表聯查啊。或許你也知道,表之間的關係有 1對1 1對多 多對多。然後.1.巢狀查詢 乙個查詢的結果是另外sql查詢的條件 如 查詢stu表中年齡最大的是誰?mysql select from stu where age select max age from...
mysql多表聯查 mysql 多表聯查 例項
多表查詢 笛卡爾積查詢 笛卡爾積查詢 就是兩張表相乘,若左邊表有m條資訊,右邊表有n條資訊,那麼查詢顯示的資訊總共為m n條,這其中往往包含大量錯誤資料,需要用where 條件來過濾無用資訊 笛卡爾積查詢語句 select from dept,emp id name id name dept id ...
mysql 多表聯查
1.多表連線型別 2.1.笛卡爾積 交叉連線 在 mysql 中可以為 cross join 或者省略 cross 即 join,或 者使用 如 1.select from table1 cross join table2 2.select from table1 join table2 3.sel...