2013-02-27 58 views
0

我需要在創建區域中顯示商店並顯示訂購日期。我創建了第三張桌子加入兩個已經在這裏(店鋪&區域)並加入了內部連接。首先,我得到的結果是這樣的:顯示某個字段的所有結果,以及一個用於內部聯接的其他結果

area name: name1 
shops: shop1 
date: date1 

area name: name1 
shops: shop2 
date: date1 

,我需要:

area name: name1 
shops: shop1, shop2 
date: date1 

然後我發現了一些代碼和腳本包含它,但它僅適用於一個行(下面的代碼名) 。如果我使用該代碼的日期嘗試elseif,則顯示錯誤。代碼如下。

<?php 
include('db.php'); 
$result = mysql_query("SELECT * FROM area INNER JOIN area_join ON area.id = area_join.area_id INNER JOIN shops ON area_join.shops_id = shops.id ") or die("Error: " . mysql_error());; 
while($data = mysql_fetch_assoc($result)){ 
if($data['name'] != $groupname){ 
echo "<br><hr>Area name: ".$data['name']."<br />Shops: "; 
$groupname = $data['name']; 
} 
echo "".$data['shop_name'].", "; 
} 
?> 
+2

[**請不要在新的代碼中使用'mysql_ *'功能**](HTTP://位.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-02-27 03:17:33

回答

0

使用GROUP_CONCAT

SELECT areaName, 
     GROUP_CONCAT(DISTINCT shopname) shopList 
FROM area 
     INNER JOIN area_join 
      ON area.id = area_join.area_id 
     INNER JOIN shops 
      ON area_join.shops_id = shops.id 
GROUP BY areaName 

變化對錶中發現的列名到原來的名稱。

相關問題