Привет и спасибо заранее. У меня две таблицы:
пользователи
|- ID -|- NAME -| |- 1 -|- Will -| |- 2 -|- Isabel -| |- 3 -|- Robert -| |- 4 -|- John -| |- 5 -|- David -| |- 6 -|- Eric -|
задачи
|- ID -|- USER -|- DESCRIPTION -| |- 1 -|- 1 -|- Clean floor -| |- 2 -|- 1 -|- Clean windows -| |- 3 -|- 2 -|- Repair an appliance -| |- 4 -|- 3 -|- Buy spare parts -| |- 5 -|- 1 -|- Remove stains -| |- 6 -|- 2 -|- Pick up the lounge -|
Мне нужна помощь для написания запроса для получения массива "Задачи" с помощью "user", что-то вроде следующего:
Array ( [0] => Array ( [user] => 1 [tasks] => Array ( [0] => Array ( [id] => 1 [description] => Clean floor ) [1] => Array ( [id] => 2 [description] => Clean windows ) [2] => Array ( [id] => 5 [description] => Remove stains ) ) ) [1] => Array ( [user] => 2 [tasks] => Array ( [0] => Array ( [id] => 3 [description] => Repair an appliance ) [1] => Array ( [id] => 6 [description] => Pick up the lounge ) ) ) [2] => Array ( [user] => 3 [tasks] => Array ( [0] => Array ( [id] => 4 [description] => Buy spare parts ) ) ) )
У MySQL нет "массивов". Возможно, использование group_concat()
будет делать то, что вы хотите:
select t.user,
group_concat(t.id, ':', t.description order by t.id) as tasks
from tasks t
group by t.user;