鍍金池/ 問答/數(shù)據(jù)分析&挖掘  PHP  數(shù)據(jù)庫/ 有關(guān)php業(yè)務(wù)邏輯,mysql優(yōu)化問題

有關(guān)php業(yè)務(wù)邏輯,mysql優(yōu)化問題

有一個usr表存著uid,username
業(yè)務(wù)表1 ,存的信息有字段uid,username
業(yè)務(wù)表2 ,存的信息僅有uid,
(業(yè)務(wù)表2多條數(shù)據(jù)對應(yīng)業(yè)務(wù)表1一條數(shù)據(jù))

問題出現(xiàn)的環(huán)境背景及自己嘗試的方法

現(xiàn)有:查詢遍歷業(yè)務(wù)表2,數(shù)據(jù)是數(shù)組list,還需在list上組裝username,以便于前端顯示
方法一是每一條list根據(jù)uid去數(shù)據(jù)庫usr表查詢username;
方法二是先遍歷查詢業(yè)務(wù)表1,用一個空數(shù)組arr,key存uid,對應(yīng)的value存username,遍歷list,使用array_key_exists判斷uid是否是arr其中一個鍵,如果是則獲取arr[uid],作為username

疑問

方法二好處就是避免了多次數(shù)據(jù)庫查詢username,但是存在疑問用空數(shù)組的key存uid,假如uid數(shù)值很大,比如10000,這樣是不是會涉及到php數(shù)組內(nèi)存問題(這方面知識不是很了解)
還想知道方法二是不是還有別的缺點(diǎn),如果有,是不是有其他更好的處理方法

回答
編輯回答
孤客

了解下多表聯(lián)查,或者直接了解 join 的使用方法就好,這個問題并不難,是業(yè)務(wù)上常見的需求。

2018年6月17日 04:04
編輯回答
她愚我

數(shù)據(jù)庫的join

2018年6月5日 23:28
編輯回答
失魂人

直接使用join on , 或者left join on 都行, 或者你可以嘗試mysql的 in() 方法

2018年4月4日 20:01
編輯回答
清夢
select t2.uid as t2uid,t1.uid as t1uid,t1.username from table2 as t2 join table1 as t1 on t2.uid = t1.uid
這樣一次性就查詢出結(jié)果了,前端遍歷展示
2017年8月9日 22:48