2012-07-05 11 views
-1

我在我的mysql數據庫中有以下兩個表。顯示mysql值作爲類別和項目

表名:組

id group_name 
1  Garments 
2  Computer Accessories 
3  Food 

表名稱:帳戶

id  group_id account_name 
1   1  T-shirt 
2   1  Jeans 
3   2  Motherboard 
4   2  Mouse 

我想顯示像以下:

Garments 
     T-Shirt 
     Jeans 
Computer Accessories 
     Motherboard 
     Mouse 
Food 

我曾嘗試以下查詢,但無法制作如上的輸出

SELECT group_name,accounts.account_name,accounts.id FROM `groups` 
LEFT JOIN accounts ON accounts.group_id=groups.id 

如果我運行查詢它顯示像以下:

Garments    T-Shirt 
    Garments    Jeans 
    Computer Accessories Motherboard 
    Computer Accessories Mouse 
    Food     NULL 

能否請你告訴我怎麼樣我所提到的顯示輸出。爲了您的信息,我正在使用Codeigniter。

感謝很多提前:)

+0

我覺得你的問題是非常相似,這個線程.. http://stackoverflow.com/questions/11183658/trying-to-display-2-tables-data/11187774#11187774 – 2012-07-05 11:38:11

+0

什麼你的意思做「顯示輸出」?單單一個數據庫查詢就會以表格的形式爲您提供數據,您向我們展示了這些數據。如何向用戶顯示該數據取決於您。你如何顯示這個? – David 2012-07-05 11:39:31

回答

1

這裏就是爲了這個目的

select 
    group_name as Group_name, 
    group_concat(account_name) as Accounts 
from garments 
    left join account 
    on account.group_id = garments.id 
group by garments.group_name 

使用組CONCAT查詢。這將顯示這個結果,那麼你可以在php結束爆炸賬戶

Group_name    Accounts 
Computer Accessories Motherboard,Mouse 
Food     (NULL) 
Garments    T-shirt,Jeans 
+0

非常感謝:) – 2012-07-05 11:57:39

+0

我沒有忘記group_concat的用法,你教過我一次:) – 2012-07-05 11:58:17

0
$categories = mysql_query('select * from groups'); 
while($category = mysql_fetch_array($categories)) 
{ 
    $ID = $category['id']; 
    $category_name = $category['group_name']; 
    echo $category_name; 

    $accounts = mysql_query("select * from account where group_id = $ID"); 
    while($account = mysql_fetch_array($accounts)) 
    { 
     $account_name = $account['account_name']; 
     echo 'TAB TAB TAB '.$account_name; 
    } 
} 

您可以將Cateogory_name和ACCOUNT_NAME到其容器的,讓輸出更好。