我的第一篇文章在这里。对来自其他表格的值进行排序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