0

我在mysql数据库中有3个表,类别,产品和cat_pro,类别表包含类别,产品表包含产品及其价格,cat_pro分别包含类别和产品的主键。一个类别可以包含许多产品。Category 表有 category_id 和 category name,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 回答