left-join - 關(guān)于 mysql 關(guān)聯(lián)查詢的一些疑惑
問題描述
【join查詢這種黑科技在數(shù)據(jù)量小的情況下可以使用,基本沒有什么影響,數(shù)據(jù)量大的時候,join的性能可能會是硬傷,應(yīng)該盡量避免,可以分別根據(jù)索引取單表數(shù)據(jù)然后在應(yīng)用層對數(shù)據(jù)進行join、merge】, 想問下例如現(xiàn)在有三個表 user、department、article, album(專輯)
user表:
id int primary key auto_increment,name char(32),password char(32),created_at bigint,updated_at bigint,is_delete int default 0,dep_id int (對應(yīng)department表的 `id`)
department表:
id int primary key auto_increment,name char(32),pid int default 0,created_at bigint,updated_at bigint,is_delete int default 0
article表
id int primary key auto_increment,title char(100),content text,user_id int,(對應(yīng) user 表的 `id`)cate_id int,album_id int, (對應(yīng) album 表的 `id`)created_at bigint,updated_at bigint,is_delete int default 0
album專輯表:
id int primary key auto_increment,title char(100),user_id int, (對應(yīng) user 表的 `id`)pid int default 0,created_at bigint,updated_at bigint,is_delete int default 0
現(xiàn)在想查詢 用戶id 為 5 , 并找出屬于他自己 專輯id 為 10 下最新發(fā)表的 10 篇文章(這10篇當中當然不能包括被刪除的文章), 不能使用 join 關(guān)聯(lián)查詢, 而是使用這種方式實現(xiàn)[分別根據(jù)索引取單表數(shù)據(jù)然后在應(yīng)用層對數(shù)據(jù)進行join、merge], 該如何實現(xiàn)呢?(最好能夠有sql舉例說明)
問題解答
回答1:首先你要理解什么叫做在應(yīng)用層面實現(xiàn)。另外一個,你都知道user_id為5了,根本涉及不到什么關(guān)聯(lián)查詢,你直接:
select * from article where user_id = 5 and is_delete = 0 order by id desc limit 10;
就可以搞定了啊
相關(guān)文章:
1. javascript - vuejs+elementui 購物車價格計算,點擊加減號修改數(shù)量總價都不會改變,但是計算執(zhí)行了2. css右浮動字的順序顛倒了3. MySQL主鍵沖突時的更新操作和替換操作在功能上有什么差別(如圖)4. html5和Flash對抗是什么情況?5. javascript - 我是做web前端的,公司最近有一個項目關(guān)于數(shù)據(jù)統(tǒng)計的!6. ios - 類似微博首頁,一張圖的時候是如何確定圖大小的?7. javascript - 如何使用loadash對[object,object,object]形式的數(shù)組進行比較8. javascript - vue過渡效果 css過渡 類名的先后順序9. javascript - 在ie下為什么會出現(xiàn)這種情況呢 《 無法獲取未定義或 null 引用的屬性“l(fā)ength”》 ?請大神指教。10. 數(shù)據(jù)庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實在是找不到哪里的問題了。
