MYSQL クエリからネストされた配列を返そうとしています。投稿、ユーザー、キーワード、およびカテゴリのテーブルがあり、クエリを最適化して、あまり多くの選択がないようにしたいと考えています。現在SELECT
、1 つの投稿に対して 4 つのクエリがあり、それぞれが をループし、foreach
PHP でネストされた配列を作成しています。それらをより少ないクエリに統合し、実行を高速化する方法はありますか?
1 行は次のようになります。キーワード、カテゴリ、および著者番号はすべて、それぞれのテーブルの ID です。
投稿表:
| id | title | content | keywords | category | author |
|----|-------|----------------|----------|----------|--------|
| 1 | Test | Lorem ipsum... | 1, 2 | 1 | 1 |
|----|-------|----------------|----------|----------|--------|
キーワード表:
| id | name | url | description |
|----|----------|----------|----------------|
| 1 | keyword1 | keyword1 | Lorem ipsum... |
| 2 | keyword2 | keyword2 | Lorem ipsum... |
|----|----------|----------|----------------|
ユーザー テーブル:
| id | name | email |
|----|----------|--------------|
| 1 | John Doe | john@doe.com |
|----|----------|--------------|
カテゴリ表:
| id | name | url |
|----|-----------|-----------|
| 1 | Category1 | category1 |
|----|-----------|-----------|
達成したい出力は次のとおりです。
Array
(
[0] => Array
(
[id] = 1
[title] = Test
[content] = Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, sapiente assumenda ratione dicta cumque accusantium id labore cupiditate maiores obcaecati repudiandae at eum fuga doloremque commodi. Quidem, nulla cupiditate aperiam!
[keywords] => Array
(
[0] => Array
(
[id] => 1
[name] => keyword1
[url] => keyword1
[description] => Lorem ipsum dolor sit amet, consectetur adipisicing elit. Asperiores, dolorem, consectetur voluptatem amet hic placeat alias rerum unde quis quia aperiam officia aliquam incidunt sit fugit quo iusto porro repellat!
)
[1] => Array
(
[id] => 2
[name] => keyword2
[url] => keyword2
[description] => Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam, culpa, repudiandae voluptatibus odit nam id sed maxime ullam quia accusamus minima nisi! Dolor, doloremque similique voluptatibus at eos vitae id?
)
)
[category] => Array
(
[id] => 1
[name] => Category1
[url] => category1
)
[author] => Array
(
[id] => 1
[name] => John Doe
[email] => john@doe.com
)
)
)