我在mysql数据库中有3个表,类别,产品和cat_pro,类别表包含类别,product表包含产品及其价格,cat_pro分别包含类别和产品的主键.A类可以包含众多产品。 类别表有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$
答案 0 :(得分: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"]."$<br/>";
}
?>