我的第一篇文章在這裏。對來自其他表格的值進行排序php
我想將我的產品表中顯示的值與我的products_categories表中的值進行排序。
我的產品表中包含以下字段:
id | psku | pname | pdescription
我products_categories表具有以下字段:
id | psku | subcategory | orderid
我建立這個網站是一個小型的網上商店,其中包含幾個子類。此時的設置允許我將1個產品添加到多個類別。
例如,產品SKU#6001將被列在2個子類別中,化妝品&睫毛。我會再2在我products_subcategories表項,像這樣:
id | psku | subcategory | orderid
1 | 6001 | cosmetics | 1
2 | 6004 | eyelashes | 1
3 | 6003 | cosmetics | 2
4 | 6011 | cosmetics | 3
5 | 6020 | eyelashes | 2
6 | 6045 | cosmetics | 4
我目前使用下面的查詢,以顯示每個子類數據:
SELECT * FROM products LEFT JOIN products_subcategories
ON products.psku = products_subcategories.psku
WHERE products.psku IN ('6001','6003','6011','6020','6045')
GROUP BY e2o_products_subcategories.psku
ORDER BY e2o_products_subcategories.orderid ASC
這應該顯示我的結果是這樣:
Cosmetics:
PSKU 6001
PSKU 6003
PSKU 6011
PSKU 6045
eyelashes:
PSKU 6004
PSKU 6020
它似乎沒有工作。嘗試了一些其他組合,結果最差。該產品顯示,但不會按排序
有人會有一個可能的解決方案來解決這個問題。如果需要,我可以提供樣本數據。
謝謝。
備註:你可以提高性能與b etter標準化。爲了您的理智,以及。將'products.id'更改爲'products.product_id',將'products_categories.id'更改爲'products_categories。product_category_id'和'product_categories.pksu'到'product_categories.product_id'。然後加入product_id而不是pksu。 – 2012-04-14 07:03:52
您的訂單中的'e2o_'前綴和group by子句是什麼? – kjones 2012-04-14 07:04:15
嗨,抱歉的前綴。這是來自舊代碼的剩餘部分。忘了刪除。感謝您的解釋。這樣做是有道理的。更好地理解。 – daespo 2012-04-14 08:06:41