2012-07-28 50 views
0

我在mysql数据库,类别,产品和cat_pro中有3个表,分类表包含类别,产品表包含产品及其价格,cat_pro分别包含类别和产品的主键。一个类别可以包含众多产品。 类别表具有category_id和类别名称,产品表具有product_id,product_name和price.cat_pro表格在内部联接期间使用,因为它包含类别和产品的外键。输出一个类别后面跟着产品

我想要的是一个sql查询语句,它输出一个类别,然后是该类别中的产品及其价格,直到所有类别和产品都以垂直方式耗尽。 问题是输出的方式below.That的信息是一个类别,然后其产品 例如

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

你不能这样做,正是在MySQL,因为是行不能是另一行的“成员”。 – David 2012-07-28 15:41:48

+0

有3个表的mysql模式会更清楚。您可以点击“编辑”将信息添加到您的初始问题。 – Jocelyn 2012-07-28 15:45:53

回答

1

我看你YOUE标记作为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/>"; 
} 
?> 
相关问题