0

私はmysqlデータベースにcategory、product、cat_proの3つのテーブルを持っています。categoryテーブルにはカテゴリが含まれ、productsテーブルには製品とその価格が含まれ、cat_proにはカテゴリと製品の主キーがそれぞれ含まれています。カテゴリには多数の製品を含めることができます。カテゴリ テーブルには category_id とカテゴリ名があり、products テーブルには product_id、product_name と price.cat_pro テーブルがあり、カテゴリと製品の外部キーが含まれているため、内部結合で使用されます。

私が欲しいのは、すべてのカテゴリと製品が垂直方向に使い果たされるまで、そのカテゴリの製品とその価格が続くカテゴリを出力するSQLクエリステートメントです。問題は、以下の方法で情報を出力することです。それは、その製品が続くカテゴリです。たとえば

Category A
product 1 250$
product 2 450$
Category B
product 1 100$
product 2 400$
Category C
product 1 300$
product 2 100$
4

1 に答える 1

1

あなたの質問にPHPのタグを付けたのを見たので、PHP-MySQLの方法でそれを行う方法を紹介します。コードは次のようになります (列名を独自のスキーマに調整します)。

<?php
$query = "SELECT * from category c inner join cat_pro cp on c.category_id = cp.category_id
  inner join product p on cp.product_id = p.product_id order by c.cateogry_id desc";
$res = mysqli_query($query);
$lastCat = "";
while($row = mysqli_fetch_array($res)) {
  if($lastCat != $row["category_name"]) echo $row["category_name"]."<br/>";
  echo $row["product_id"]." ".$row["product_price"]."&#36;<br/>";
}
?>
于 2012-07-28T17:20:02.220 に答える