MySQL(v5.0.51)のクエリで誰かが助けになるのではないかと思います。私はこのようなテーブルを持っている:MySQLクエリのヘルプ
category_id | category_text | subcategory
25 | Motor Controls | NULL
26 | Contactors | 25
27 | Overloads | 25
28 | Motors | NULL
29 | Accessories | 28
サブカテゴリ列のNULL有する各エントリは、トップレベルカテゴリとはサブカテゴリが属する最上位カテゴリ指示サブカテゴリにおける値を表しています。上記例えば
:それぞれのサブカテゴリは、モータのCATEGORY_ID(25)は25の値は、今では店舗に商品テーブルにこれらの値を使用
を制御有するため コンタクタとオーバーロードがモータ制御に属しここではサブカテゴリのcategory_idのみを格納しています。
product_id | product_item | product_supplier_id | product_description | product_category_id
24 | Product A | 39 | Product A description | 27 --category_id of subcategory (ie.Overloads)
25 | Product B | 39 | Product B description | 26 --(Contactors)
私が午前問題は、私は私が(とりわけ)PRODUCTS表を照会し、カテゴリとサブカテゴリの両方を立ち上げることができ SQLクエリを必要とするということです。私はどちらか一方ではできますが、両方ではできません。私はUNION、JOINSなどを試しましたが、それを得ることはできません。これは私がこれまでにサブカテゴリを持ってきたものです。
SELECT p.*, c.company_name, pc.category_text AS subcategory
FROM products p, company c, product_categories pc
WHERE p.product_supplier_id = c.company_id
AND p.product_category_id = pc.category_id
この結果、以下の結果が得られます。
product_id | product_item | product_supplier_id | product_description | product_category_id | company_name | subcategory
24 | Product A | 39 | Product A description | 27 | Product A Supplier | Overloads
25 | Product B | 39 | Product B description | 26 | Product B Supplier | Contactors
は基本的に私が欲しいのは、それは私がテーブルを作成する方法でこれを行うことができ、この
24 | Product A | 39 | Product A description | 27 | Product A Supplier | **Motor Controls** | Overloads
のように見えるように、各サブカテゴリの正しいトップレベルのカテゴリを含む列を追加することですまたは私はそれを変更する必要がありますか?
申し訳ありません申し訳ありませんわかりやすい画像がありましたが、「評判」が1で、投稿できませんでした。
ご協力いただければ幸いです。 MySQLデータベースにアクセスするためにPHPでクエリを使用しています。
おかげ
おかげで(のようなオラクルでは、CONNECT BY句)MySQLが階層データを照会するためのより良いサポートがあればいいのに!それは完璧に働いた。私はそれが必要以上に複雑になっていたと思います...誰も解決策を提示されたときにそれを言うのですか?再度、感謝します! – user558720