我正在嘗試在一個網站上創建一個產品選單,其中產品可以有不同的尺寸和價格。我想我已經在 3FN 中找到了表格,其中有一張產品名稱表、一張產品尺寸表和一張產品價格表。這種分離的原因(盡我所能理解)是每個產品都有不同的尺寸和價格,但是當這些產品的尺寸不同時,某些產品的價格會相同。為了鏈接這些,我創建了 3 個 MTM 表 - 產品和尺寸、產品和價格以及價格和尺寸。我現在要做的是一次查詢所有表,以便正確檢索每個產品尺寸價格組合,然后我可以將其傳遞到 PHP 頁面并將結果顯示為選單的一部分。您可以在下面看到我使用兩個表部分設法做到的地方,
名稱-尺寸
相關代碼:
SELECT P.product_name, S.product_size
FROM ebdb.Products AS P
INNER JOIN ebdb.Prod_Size_Combo AS PS
ON P.product_id = PS.product_id
INNER JOIN ebdb.Product_Sizes AS S
ON PS.size_id = S.size_id
ORDER BY P.product_id ASC, S.size_id ASC
名稱-價格
相關代碼:
SELECT P.product_name, I.product_price
FROM ebdb.Product_Prices AS I
INNER JOIN ebdb.Prod_Price_Combo AS PP
ON I.price_id = PP.price_id
INNER JOIN ebdb.Products AS P
ON P.product_id = PP.product_id
ORDER BY P.product_id ASC, I.price_id ASC
價格-尺寸
相關代碼:
SELECT I.product_price, S.product_size
FROM ebdb.Product_Sizes AS S
INNER JOIN ebdb.Price_Size_Combo AS SI
ON S.size_id = SI.size_id
INNER JOIN ebdb.Product_Prices AS I
ON I.price_id = SI.price_id
ORDER BY S.size_id ASC, I.price_id ASC
我可以運行什么樣的查詢來獲取所有三列,但可以正確檢索資訊?我應該總共只有 12 列。
uj5u.com熱心網友回復:
在咨詢我的團隊后,我發現您可以擁有一個多 MTM 表,您可以同時從中提取所有相關資料。請參閱以下模型以供參考:
多 MTM 表模型
要從此表中提取相關資訊,命令將類似于:
SELECT P.product_name, S.product_size, I.product_price
FROM ebdb.PSI_Combo AS C
INNER JOIN ebdb.Products AS P
ON P.product_id = C.product_id
INNER JOIN ebdb.Product_Prices AS I
ON I.price_id = C.price_id
INNER JOIN ebdb.Product_Sizes AS S
ON S.size_id = C.size_id
結果資訊將顯示為: 表結果
您可以通過添加 WHERE 子句或 WHERE/AND 子句來搜索特定條目。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/353725.html
上一篇:Mysql多表連接查詢優化
