Php分组选择查询

时间:2016-06-20 20:20:52

标签: php mysqli

所以我有与出版物相关的人

我目前的疑问是:

$query = "SELECT confAuth.personid, publicationconf.title FROM confAuth INNER JOIN publicationconf ON publicationconf.conferenceid = confAuth.conferenceid GROUP BY publicationconf.conferenceid";

它按会议ID分组,但每个条目只显示一个人ID。显然,我需要的是显示所有人的身份

提前致谢。

正如同学刚才所说,这是我们的印刷声明,可能是错误的。对此的任何输入。

$result = $conn->query($query);
    $rows = $result->num_rows;  
    if ($rows > 0)
    {
        for($i=0; $i<$rows; $i++)
        {
            if($row = $result->fetch_assoc())
            {
            ?>
                <div class="row">
                <div class="col-md-10">
                <p><?php echo $row["personid"] . ", " . $row["title"]?></p>

1 个答案:

答案 0 :(得分:0)

使用group_concat(confAuth.personid)获取分组集中所有值的逗号分隔列表。

但是,由于您需要每个personid / title组合一个订单项,请将personid和title添加到group by子句中。

另外,请考虑表别名以提高可读性。

$query = "SELECT ca.personid, pc.title 
FROM confAuth ca 
INNER JOIN publicationconf pc ON pc.conferenceid = ca.conferenceid 
GROUP BY pc.conferenceid, ca.personid, pc.title";