Php 显示特定字段的所有结果,并使用内部联接显示其余字段的一个结果
我需要在创建的区域中显示店铺,并注明下订单的日期。我创建了第三个表来连接已经存在的两个表(shops&area),并使用内部连接来连接它们。首先,我得到了如下结果:Php 显示特定字段的所有结果,并使用内部联接显示其余字段的一个结果,php,mysql,sql,Php,Mysql,Sql,我需要在创建的区域中显示店铺,并注明下订单的日期。我创建了第三个表来连接已经存在的两个表(shops&area),并使用内部连接来连接它们。首先,我得到了如下结果: area name: name1 shops: shop1 date: date1 area name: name1 shops: shop2 date: date1 我需要: area name: name1 shops: shop1, shop2 date: date1 然后我找到了一些代码并将其包含在脚本中,但它只适用于
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'].", ";
}
?>
使用
集团公司
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
将表中的列名更改为您的原始名称。您是否尝试过group\u concat?(现在不能测试,但我想是这样的)
。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。
SELECT areaname,group_concat(shops) 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