根据多列中的2行值获取表中的值

时间:2019-02-04 18:13:55

标签: php mysql loops get multiple-columns

我在数据库中有这样的表:

 name    date    year
 John    1/5/15  2015
 Maria   3/3/15  2015
 John    7/3/16  2016
 Steve   5/2/16  2016
 Steve   9/7/17  2017
 John    9/1/17  2017

并想要得到这样的表:

Name    2015    2016    2017
John    1/5/15  7/3/16  9/1/17
Maria   3/3/15
Steve           5/2/16  9/7/17

我尝试了以下查询:

$sql = "SELECT DISTINCT(name),date,year FROM table ORDER BY name ASC";
$query = $conn->query($sql);

现在,我不知道该使用什么循环来获取数据在第二张表中的样子。

我尝试使用此代码

while($row = $query->fetch_assoc()) {
<td>" . $row["prezime_ime"] . "</td>
<td>" . ($row["date"]) . "</td>

现在我被困在这里。 我是PHP新手,所以任何人都可以帮助我。 非常感谢

1 个答案:

答案 0 :(得分:1)

您可以按照以下条件进行分组

SELECT name,
       MAX( CASE WHEN YEAR(date) = 2015
                 THEN date
            END) as 2015,
       MAX( CASE WHEN YEAR(date) = 2016
                 THEN date
            END) as 2016,
       MAX( CASE WHEN YEAR(date) = 2017
                 THEN date
            END) as 2017
FROM yourTable
GROUP BY name