0

作成しているショップに、そのカテゴリIDからランダムに5つの製品を表示するセクションを作成しようとしています。

まず、すべてのカテゴリにIDと一連のサブカテゴリがあり、すべてのサブキャットにIDがあり、すべてのサブキャット内に多数の製品があります。すべての製品にはIDもあります。

Productsテーブルには、ProductIDとSubCatIDが含まれています。SubCatテーブルにはSubCatIDとCatIDが含まれますCatテーブルにはCatIDのみが含まれます。

したがって、CatIDで5つのランダムな商品を表示する必要があります。次のようなクエリを使用して、ランダムな商品を取得できます。

$randomprod = mssql_query("SELECT TOP 5* FROM Products WHERE SubCatID = '1' ORDER BY NEWID()");
while ($echorand = mssql_fetch_array($randomprod)) { 

ただし、特定のCatIDですべての商品を表示できるようにテーブルを結合する方法が必要ですが、ProductsテーブルにCatIDが含まれていないため、難しいと感じています。多くの結合があることは承知していますが、PHPはかなり新しく、MSSQLはさらに新しいものです。誰かがどの結合が最適か教えてもらえますか、それとも正しい方向に向けてください。

4

1 に答える 1

1

次のように、製品をサブカテゴリに結合し、サブカテゴリをカテゴリに結合します。

SELECT TOP 5 Products.Name, SubCatergory.Name, Category.Name
FROM Products
INNER JOIN SubCatergory ON Products.SubCatID = SubCatergory.SubCatID
INNER JOIN Catergory ON SubCatergory.CatID = Category.CatID
WHERE Category.CatID = 1
ORDER BY NEWID()

INNER JOIN上記の例で使用しました。

于 2012-11-28T14:34:50.717 に答える