mysql多表查詢的問(wèn)題
問(wèn)題描述
產(chǎn)品分類(lèi)表:prolei產(chǎn)品信息表:pro
前提知道某分類(lèi)lei的值,他對(duì)應(yīng)著分類(lèi)表(prolei)中的category_id.現(xiàn)在需要,通過(guò)lei搜索分類(lèi)表(prolei)中的category_id的記錄,然后用搜索結(jié)果去產(chǎn)品表(pro)中搜索所有的記錄,對(duì)應(yīng)著產(chǎn)品表中的字體goods_id。
這個(gè)怎么寫(xiě)?
問(wèn)題解答
回答1:以后想讓人快速清晰地看懂問(wèn)題,麻煩貼一下DDL語(yǔ)句,加上清晰簡(jiǎn)潔的問(wèn)題描述,謝謝。
一次查詢:
SELECT b.* FROM prolei AS a, pro AS bWHERE a.category_id = b.goods_idAND a.lei = ?
但建議分開(kāi)2次查詢,尤其是互聯(lián)網(wǎng)應(yīng)用這種并發(fā)量比較大的場(chǎng)景應(yīng)盡量避免聯(lián)表查詢:
SELECT category_id FROM proleiWHERE lei = ?;SELECT * FROM proWHERE goods_id IN (...) #在代碼里把SQL1的結(jié)果填進(jìn)去回答2:
不太明白你說(shuō)的意思,能把2個(gè)表的字段寫(xiě)一下么,prolei表的哪個(gè)字段和pro表的哪個(gè)字段關(guān)聯(lián)?你看看是這個(gè)意思么:
select p.* from prolei pl, pro p where pl.goods_id = p.goods_id and pl.category_id = {lei}回答3:
不知道你所說(shuō)的使用分類(lèi)表中的結(jié)果是一個(gè)什么樣的結(jié)果,我暫定為某一個(gè)字段數(shù)據(jù)結(jié)果作條件吧,如下子查詢
SELECT `字段1`,`字段2`,`字段3` FROM `pro` WHERE `goods_id` IN (SELECT `某字段` FROM `prolei` WHERE `category_id`={$lei})
不過(guò)考慮到你時(shí)要對(duì)產(chǎn)品表做操作,產(chǎn)品表的數(shù)據(jù)應(yīng)該很大,不推薦你用子查詢。你可以先把分類(lèi)表中的數(shù)據(jù)查詢出來(lái),然后通過(guò)程序做好對(duì)應(yīng)的查詢產(chǎn)品表的數(shù)據(jù)條件,再去查詢產(chǎn)品表。
SELECT `字段1`,`字段2`,`字段3` FROM `prolei` WHERE `category_id`={$lei}# code ... 假設(shè)程序處理之后的條件為 $where = ...SELECT `字段1`,`字段2`,`字段3` FROM `pro` WHERE `goods_id` IN {$where} #根據(jù)你自己的需求條件 IN;=;LIKE
希望對(duì)你有幫助
相關(guān)文章:
1. css - 如何把一個(gè)視圖放在左浮動(dòng)定位的視圖的上面?2. javascript - axios請(qǐng)求回來(lái)的數(shù)據(jù)組件無(wú)法進(jìn)行綁定渲染3. php多任務(wù)倒計(jì)時(shí)求助4. python的正則怎么同時(shí)匹配兩個(gè)不同結(jié)果?5. javascript - vue中怎么使用原生js插件6. javascript - 請(qǐng)問(wèn)下面代碼中的...是擴(kuò)展運(yùn)算符還是操作運(yùn)算符?這樣寫(xiě)是什么意思?7. javascript - 小demo:請(qǐng)教怎么做出類(lèi)似于水滴不斷擴(kuò)張的效果?8. css - 子元素跑到父元素外面9. MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處10. javascript - jquery怎么讓a標(biāo)簽跳轉(zhuǎn)后保持tab的樣式
