php显示来自mysql数据库和group by的数据

时间:2013-12-27 14:14:49

标签: php mysql

noob在这里,对不起,如果我的问题不清楚,但现在就这样了。

我有一个带有2个表(帐户和员工)的mysql数据库我想显示“account_name”,并在其下面列出了分配给该帐户的员工“名称”。

使用下面的代码我得到“account_name”,只有第一个员工的“名称”分配给该帐户。一些账户有2名或更多的工作人员被分配。

我明白了:

目标(account_name)

staff1(“名称”)

WalMart(“account_name”)

staff1(“名称”)


我想:

目标(“account_name”)

staff1(“名称”) staff2(“名称”)

WalMart(“account_name”)

staff1(“名称”) staff2(“名称”) staff3(“名称”)


任何和所有帮助将不胜感激。

亚历

代码:

$query = "SELECT staff.name, staff.drive_id, accounts.id, accounts.account_name
FROM staff
JOIN accounts
ON staff.drive_id = accounts.id
WHERE staff.drive_id = accounts.id
AND accounts.drive_date = CURDATE()
GROUP BY accounts.account_name";
$result = mysql_query($query);

while ($staff = mysql_fetch_array($result))
{

echo "<br />";
echo $staff['account_name'];
echo "<br /><br />";
echo $staff['name'];
echo "<br />";
}

2 个答案:

答案 0 :(得分:1)

分组依据将每个分组字段的所有结果减少到一个结果您按照

排序
$query = "SELECT staff.name, staff.drive_id, accounts.id, accounts.account_name
                        FROM staff
                        JOIN accounts
                        ON staff.drive_id = accounts.id
                        WHERE staff.drive_id = accounts.id
                        AND accounts.drive_date = CURDATE()
                        ORDER BY accounts.account_name";

然后,您可以检查account_name是否已更改为与之前的结果相比较,然后首先回显帐户详细信息,然后回显姓名。

$result = mysql_query($query);
$account = '';

while ($staff = mysql_fetch_array($result))
{
if($account == $staff['account_name'])
  {
  echo "<br />";
  echo $staff['account_name'];
  $account = $staff['account_name'];
  }
echo "<br /><br />";
echo $staff['name'];
echo "<br />";
}

答案 1 :(得分:0)

您需要操作员指定如何组合帐户名称,例如:

$query = "SELECT staff.name, staff.drive_id, accounts.id,
                 GROUP_CONCAT(accounts.account_name SEPARATOR ' ')
          FROM staff
          JOIN accounts
          ON staff.drive_id = accounts.id
          WHERE staff.drive_id = accounts.id
          AND accounts.drive_date = CURDATE()
          ORDER BY accounts.account_name"

有关详细信息和选项,请参阅MySql's group by functions