Получить значения в таблицу в соответствии с 2 значениями строки в нескольких столбцах

0

у меня есть таблица в базе данных, как это:

 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
    Я думаю, у вас есть только одна запись для имени каждый год? ты знаешь годы?
  • 0
    да. только одна запись имя каждый год, да, я знаю годы
Теги:
loops
get
multiple-columns

1 ответ

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
  • 0
    хорошо, я поставил этот код в свой запрос, но как получить эти данные в ячейку таблицы
  • 0
    Запустите запрос на БД, вы получите точный результат, который вы запрашиваете по вашему вопросу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню