我在数据库中有这样的表:
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新手,所以任何人都可以帮助我。 非常感谢
答案 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