left-join - 關(guān)于 mysql 關(guān)聯(lián)查詢的一些疑惑
問(wèn)題描述
【join查詢這種黑科技在數(shù)據(jù)量小的情況下可以使用,基本沒(méi)有什么影響,數(shù)據(jù)量大的時(shí)候,join的性能可能會(huì)是硬傷,應(yīng)該盡量避免,可以分別根據(jù)索引取單表數(shù)據(jù)然后在應(yīng)用層對(duì)數(shù)據(jù)進(jìn)行join、merge】, 想問(wèn)下例如現(xiàn)在有三個(gè)表 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 (對(duì)應(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,(對(duì)應(yīng) user 表的 `id`)cate_id int,album_id int, (對(duì)應(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, (對(duì)應(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篇當(dāng)中當(dāng)然不能包括被刪除的文章), 不能使用 join 關(guān)聯(lián)查詢, 而是使用這種方式實(shí)現(xiàn)[分別根據(jù)索引取單表數(shù)據(jù)然后在應(yīng)用層對(duì)數(shù)據(jù)進(jìn)行join、merge], 該如何實(shí)現(xiàn)呢?(最好能夠有sql舉例說(shuō)明)
問(wèn)題解答
回答1:首先你要理解什么叫做在應(yīng)用層面實(shí)現(xiàn)。另外一個(gè),你都知道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. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)2. html按鍵開(kāi)關(guān)如何提交我想需要的值到數(shù)據(jù)庫(kù)3. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點(diǎn)符號(hào)?正則如何寫?4. javascript - 請(qǐng)教如何獲取百度貼吧新增的兩個(gè)加密參數(shù)5. Android中能不能判斷一個(gè)數(shù)據(jù)庫(kù)是create來(lái)的,還是open來(lái)的?6. gvim - 誰(shuí)有vim里CSS的Indent文件, 能縮進(jìn)@media里面的7. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤8. PHP類屬性聲明?9. javascript - 求助canvas繪制馬賽克的問(wèn)題,老是取色不準(zhǔn)10. java - 安卓接入微信登錄,onCreate不會(huì)執(zhí)行
