2016-05-09 9 views
0

上のデータベース・ベースの資料を表示すると、特定の製品が属するすべてのカテゴリの次の列があります。 Column of the table for productsは、私は私のサイトの商品やテーブルをストックするテーブルを持つデータベースを持っていますカテゴリ

最初の行が属するカテゴリを取得するためのクエリを作成した後、情報は次のようなオブジェクトに格納されます。dinner,casual,kids

ここで私の質問は、SQLコマンドSELECTを使用して、少なくとも1つのカテゴリを持つすべての製品を共通に取得するには、PHP

この問題を解決するのに役立ちます。申し訳ありませんが、ネイティブの英語のスピーカーではありません

答えて

1

わかっていれば、商品カテゴリを表す文字列がカンマで区切られた列があります。この場合、カラムProductCategoryIDの部分文字列関数を実行する必要がありますが、これは常に推奨されません。 列ProductTable.ProductCategoryIDを使用する代わりに、リンクテーブルProductsCategoriesを列ProductID, CategoryIDにすることをお勧めします。あなたはこのような、より効率的なクエリを使用することができます。このように

---------------------- 
| ProductsCategories | 
---------------------- 
| ProductID   | 
| CategoryID   | 
---------------------- 

:私は、正しい方法で ProductCategoryID列の構造を理解している場合

SELECT DISTINCT ProductTable.* 
FROM ProductTable 
    INNER JOIN ProductsCategories ON (ProductsCategories.ProductID = ProductTable.ProductID) 
WHERE CategoryID IN 
(
    SELECT CategoryID 
    FROM ProductsCategories 
    WHERE ProductID != ProductTable.ProductID 
) 
; 

すべてこの、もちろん、意味を持っています:)

関連する問題