台灣最大程式設計社群網站
線上人數
1038
 
會員總數:246713
討論主題:190131
歡迎您免費加入會員
討論區列表 >> MySQL >> 如何讓產品多分類的設計和查詢
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何讓產品多分類的設計和查詢
價值 : 50 QP  點閱數:1044 回應數:5
樓主

小飛
初學者
197 283
1437 198
發送站內信


我有一商品資料結構表為

商品ID(id),商品名稱(product),商品介紹(desciption),商品分類(class)


另一商品分類結構表為

分類ID(class_id),分類名稱(class_name)

假設目前分類內容有:

classA , A分類
classB , B分類
classC , C分類
classD , D分類


1.現在要新增一項商品

商品ID(id) >> 自動給號
商品名稱(product) >> 商品名稱1
商品介紹(desciption) >> 商品介紹1
商品分類(class) >> classA (分類代碼)

現在要查詢 A分類 的所有產品就可以找到此筆

SQL:select * from table where class='classA'

我現在的問題是,產品我要多分類,就是在查詢 classA 分類 和 classB 分類 都可以找到

這樣我的產品table表分類的地方要怎麼設計?

還有SQL要怎麼查詢才可以在 classA 分類 和 classB 分類 都可以查詢到該產品


本篇文章發表於2015-07-03 17:43
== 簽名檔 ==
小飛
1樓
最有價值解答

P陳
檢舉此回應
您這是屬於多對多的查詢 中間只要再多一個資料表即可

類別對照表

商品ID 類別
甲 C
甲 B
乙 A
丙 D
乙 D
這樣查 甲可以取出 B C;查乙 可以取出 A D
查 C 可以取出 甲;查 D 可以取出 丙丁

select * from 類別對照表 where 類別='D' -->會取出 丙 丁 兩筆





本篇文章回覆於2015-07-03 20:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小飛
檢舉此回應
那是不是還要去join產品資料表才能夠抓出產品其他欄位?
本篇文章回覆於2015-07-03 23:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

P陳
檢舉此回應
對!!!
但也不必作什麼太多的動作,就是線拉一拉就全出來了
查詢語法就全出來了,自己打還會打錯
本篇文章回覆於2015-07-04 07:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

小飛
檢舉此回應
不好意思,又來請教
這樣會有一個問題

就是在產品搜尋或者是全部商品顯示時都會出現2筆相同資料,怎麼不要重複?
本篇文章回覆於2015-08-12 13:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

P陳
檢舉此回應
這樣沒辦法回您
請將資料PO出來 Sql Po 出來
另最好另丟一個,大家才會協助,否則丟在這,看到的人將會很少,我是不小心看到的
本篇文章回覆於2015-08-13 22:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.