1
タスクテーブルから親データを選択し、子SubTaskテーブルを左結合し、子データをタスク配列の配列に追加するmysqlクエリを記述する必要がありますMySQL結合されたテーブルを結果の配列として選択する
:そう...ここタスク
id| details | created
===============================
1 | This is.... | 2017-08-19
2 | This is.... | 2017-08-20
3 | This is.... | 2017-08-21
サブタスク
id | task_id | details | created
============================================
123 | 1 | This is.... | 2017-08-19
234 | 1 | This is.... | 2017-08-20
345 | 2 | This is.... | 2017-08-21
456 | 2 | This is.... | 2017-08-21
567 | 3 | This is.... | 2017-08-21
[
[
'id'=>1,
'details'=>'This is from the task table',
'subTasks'=>[
[
'id'=>123,
'details'=>'This is from the sub task table',
],
[
'id'=>234,
'details'=>'This is from the sub task table',
]
]
],
[
'id'=>2,
'details'=>'This is from the task table',
'subTasks'=>[
[
'id'=>345,
'details'=>'This is from the sub task table',
],
[
'id'=>456,
'details'=>'This is from the sub task table',
]
]
]
[
'id'=>3,
'details'=>'This is from the task table',
'subTasks'=>[
[
'id'=>567,
'details'=>'This is from the sub task table',
]
]
]
]
は私のクエリであるように
$sql = " SELECT t.*,
(select st.* from SubTask) as SubTasks
FROM Task t
LEFT JOIN SubTask st
ON st.task_id = t.id
";
私はこのクエリが正しくないことを知っていますが、私はそうでなければそれを書く方法はわかりません。
テーブル構造 –
を表示すると、いくつかの情報でテーブルを表示しなくても大変助かります。 – jjoselon
最も基本的なテーブルの詳細が追加されました – LargeTuna