SQLを学ぶためだけに、単純な親子で階層を作りたいと思っていました。スタック オーバーフロー バッジ (親: 質問バッジ、子: 利他主義者) のように。
これは私のSQLです:
SELECT *
FROM (`badge_types`)
LEFT JOIN `badges` ON `badges`.`badge_type` = `badge_types`.`badge_type_id`
そして、ここに私が得るものがあります:
(
[0] => stdClass Object
(
[badge_type_id] => 2
[badge_type_title] => Participation Badges
[badge_type_description] => Badges earning by participating in various areas of the site.
[badge_type_order] => 2
[badge_id] => 1
[badge_name] => Autobiographer
[badge_level] => 3
[badge_requirement] => Completed all user profile fields
[badge_type] => 2
[badge_order] => 1
[badge_sites] => 0
)
[1] => stdClass Object
(
[badge_type_id] => 1
[badge_type_title] => Experience Badges
[badge_type_description] => Badges earned by amount of experience gain throughout the site.
[badge_type_order] => 1
[badge_id] => 2
[badge_name] => Apprentice
[badge_level] => 3
[badge_requirement] => Achieved 500 experience
[badge_type] => 1
[badge_order] => 1
[badge_sites] => 0
)
)
これを次のようにするにはどうすればよいですか。
array(
array(
[badge_type_id] => 2
[badge_type_title] => Participation Badges
[badge_type_description] => Badges earning by participating in various areas of the site.
[badge_type_order] => 2
[badges] => array(
array(
[badge_id] => 1
[badge_name] => Autobiographer
[badge_level] => 3
[badge_requirement] => Completed all user profile fields
[badge_type] => 2
[badge_order] => 1
[badge_sites] => 0
),
array(
[badge_id] => 2
[badge_name] => Example 2
[badge_level] => 3
[badge_requirement] => blah bla
[badge_type] => 2
[badge_order] => 1
[badge_sites] => 0
)
)
),
array(
[badge_type_id] => 1
[badge_type_title] => Experience Badges
[badge_type_description] => Badges earned by amount of experience gain throughout the site.
[badge_type_order] => 1
[badges] => array(
array(
[badge_id] => 2
[badge_name] => Apprentice
[badge_level] => 3
[badge_requirement] => Achieved 500 experience
[badge_type] => 1
[badge_order] => 1
[badge_sites] => 0
),
array(
[badge_id] => 2
[badge_name] => Example 2
[badge_level] => 3
[badge_requirement] => Achieved 1000 experience
[badge_type] => 1
[badge_order] => 1
[badge_sites] => 0
)
)
)
)
複数のMySQLクエリでそれを行うことができますが、理想的には、可能であれば1つのクエリを使用したいですか?