2012-07-28 58 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/>"; 
} 
?> 
相關問題