私の最初の投稿はここにあります。別のテーブルの値から値をソートする
私のproducts_categoriesテーブル内の値を使用して、my productsテーブルから表示された値をソートしようとしています。
私の製品テーブルには、次のフィールドが含まれています
id | psku | pname | pdescription
マイproducts_categoriesテーブルには、次のフィールドがあります。私が構築しています
id | psku | subcategory | orderid
サイトでは、いくつかのサブカテゴリーが含まれている小さなEショップ、です。この時点でのセットアップでは、1つの製品を複数のカテゴリに追加することができます。
たとえば、商品sku#6001は、化粧品&の2つのサブカテゴリに表示されます。私は現在、各サブカテゴリにデータを表示するには、次のクエリを使用しています
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
これは、ように私の結果を表示する必要があります。
私はそうのような私products_subcategoriesテーブルで、その後2つのエントリを持っているでしょうCosmetics:
PSKU 6001
PSKU 6003
PSKU 6011
PSKU 6045
eyelashes:
PSKU 6004
PSKU 6020
動作していないようです。最悪の結果で他の組み合わせを試してみました。製品は表示されますが、オーダーIDで並べ替えません
誰かがこの問題を解決できる可能性がありますか。必要に応じてサンプルデータを提供することができます。
ありがとうございます。あなたが最初のサブカテゴリ名に注文する必要があり
サイドノート:パフォーマンスを向上させるには、bエターの正規化。あなたの健全性のためにも。 'products.id'を' products.product_id'に、 'products_categories.id'を' products_categories 'に変更してください。product_category_id'、および 'product_categories.pksu'を' product_categories.product_id'に変更します。その後、pksuではなくproduct_idに参加してください。 –
order byとgroup by句の 'e2o_'プレフィックスは何ですか? – kjones
こんにちは、ごめんなさい。これは古いコードから残っていたものです。削除するのを忘れました。説明ありがとう。このようにするのが理にかなっています。理解することをお勧めします。 – daespo