成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql多表查詢的問(wèn)題

瀏覽:100日期:2022-06-20 16:32:02

問(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)文章: