1. 程式人生 > 其它 >多表聯查2種思路

多表聯查2種思路

資料庫:

user表字段 id name deptId;

dept表字段 id name

一、用left join的方式寫sql

select * from user u left join dept d on u.deptId = d.id

二、分兩次查詢,在java裡處理邏輯

List<User> lus = userMapper.selectList(null);
List<Dept> lds = deptMapper.selectList(null);
for (User user : lus){
for (Dept dept : lds){
if (dept.id==user.getDeptId){
user.setDeptName = dept.getName;
}
}
}

總結: 推薦使用第二種,因為第一種比較消耗系統資源,聯查的表越多效率越低,比如15-20張表,20萬的資料量,方式一的時間大概要5-10分鐘,方式二雖然寫著麻煩但是效率高,可以用多執行緒的方式進行查詢,即使不用也就幾秒鐘,上百萬的資料量更能體現優勢,資料量小的話是看不出差別的,外包經常會先用方式一去做,然後客戶覺得效率低,那就花錢升級配置,其實只需要改寫成方式二。

江湖套路深,別光想著回農村,多學習,多分享!