2 つのリレーショナル テーブルを取得しました。
table "categories"
id int(11)
title varchar(255)
table "posts"
id int(11)
title varhcar(255)
category_id int(11) // foreign key
「カテゴリ」テーブルを選択した場合、すべてのカテゴリ (「SELECT * カテゴリ」のように) を含む PHP 配列を取得したいと思いますが、すべての投稿を含む内部配列を含めます。
Array (
/* first category */
[0] = Array (
[id] => 1
[title] => "Rock"
/* all its posts */
[posts] => Array (
[0] = Array(
[id] = 100
[title] = "Rock post title"
[category_id] = 1
)
[1] = Array(
[id] = 101
[title] = "Other rock post title"
[category_id] = 1
)
)
/* second category */
[1] = Array (
)
/* ... */
)
「結合」クエリを作成した場合、次のようなすべての結果が結合されます。
id title id title category_id
1 Rock 100 "Rock post title" 1
2 Rock 101 "Other rock post" 1
3 Rock 102 "Final rock post" 1
非効率だと思うので、複数のクエリを作成したくありません。
1つのクエリで希望の結果を達成する方法はありますか?
私は CakePHP がリレーショナル テーブルの結果をこの形式で返すことができることを知っているので、同じ結果を達成しようとしています。