Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 能否在同一个SQL查询中使用两个GROUP_concat?_Mysql_Sql - Fatal编程技术网

Mysql 能否在同一个SQL查询中使用两个GROUP_concat?

Mysql 能否在同一个SQL查询中使用两个GROUP_concat?,mysql,sql,Mysql,Sql,我试图在同一个SQL语句中使用两个GROUP_concat 我有以下代码: try { $sql = 'SELECT player.id, player.name AS name, GROUP_CONCAT(previousclubs.name) previousclubs, satscore, gpa, GROUP_CONCAT(link) link FROM player INNER JOIN playerpreviousclubs

我试图在同一个SQL语句中使用两个GROUP_concat

我有以下代码:

try
{
$sql = 'SELECT player.id, player.name AS name, GROUP_CONCAT(previousclubs.name) 
        previousclubs, satscore, gpa, GROUP_CONCAT(link) link
            FROM player INNER JOIN playerpreviousclubs
                ON player.id = playerid
            INNER JOIN previousclubs
                    ON previousclubid = previousclubs.id
            INNER JOIN links
                ON links.playerid = player.id
            GROUP BY player.id';

$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching details: ' . $e->getMessage();
include 'error.html.php';
exit();
}

foreach ($result as $row)
{
$names[] = array(
                'id' => $row['id'], 
                'name' => $row['name'],
                'previousclubs' => $row['previousclubs'],
                'links' => $row['link']
                );
}
include 'profiles.html.php';
如果一名球员说有三个以前的俱乐部和一个链接,那么不要这样显示:

姓名:约翰·史密斯

以前的俱乐部:阿森纳、雷丁、QPR

链接:www.bbc.co.uk

它显示如下:

姓名:约翰·史密斯

以前的俱乐部:阿森纳、雷丁、QPR

链接:www.bbc.co.uk、www.bbc.co.uk、www.bbc.co.uk

更糟糕的是,如果你有多个链接(下面使用了两个链接),你会得到:

姓名:约翰·史密斯

以前的俱乐部:阿森纳,阿森纳,雷丁,雷丁,QPR,QPR

链接:www.bbc.co.uk、www.football.com、www.bbc.co.uk、www.football.com、www.bbc.co.uk、www.football.com

有没有人能提供一些关于这里发生了什么以及如何纠正它的指导

前几家俱乐部的第一组俱乐部本身运作良好,但当链接的第二组俱乐部加入组合时,上述问题就出现了


谢谢你的时间和帮助。

这是正常的行为。对于每个
以前的俱乐部
,您的链接条目都会重复,反之亦然。改用这个:

GROUP_CONCAT(DISTINCT link), GROUP_CONCAT(DISTINCT previousclubs.name)

问题不在于群体,而在于论点

您的第二组concat应为:

GROUP_CONCAT(distinct link) link 
您还可以控制排序(例如,如果您想要最新的排序)。查看帮助页面,网址为