があった場合、私は以下のような2つのテーブルを持っている複数のクエリ対のJOIN:はLIMIT 5
// posts
+----+---------+------------------+-----------+
| id | title | content | author_id |
+----+---------+------------------+-----------+
| 1 | title1 | content1 | 123 |
| 2 | title2 | content2 | 456 |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
+----+---------+------------------+-----------+
// users
+----+-------+
| id | name |
+----+-------+
| 1 | Jack |
| 2 | Peter |
| . | . |
| . | . |
| . | . |
+----+-------+
私は以下のような5つのポスト選択したい:私もの名前を取得する必要があり
SELECT * FROM posts WHERE 1 ORDER BY id LIMIT 5
を投稿者だから私はこのようなJOIN
を使用することによってそれを行うことができます。
SELECT * FROM posts WHERE 1 ORDER BY id LIMIT 5
// storing results in a PHP array named $results
foreach($results as $result) {
SELECT name FROM users WHERE id = $result['author_id']
// storing results in a PHP array named $names
}
// combining $names and $results to make expecting result
ので、そのアプローチは、巨大なデータセットのために、より効率的である:
SELECT p.*, u.name
FROM posts p
JOIN users ON p.author_id = u.id
WHERE 1
ORDER BY id
LIMIT 5
は、私はこのような他の方法でそれを行うことができますか?つまり、LIMIT
の前にJOIN
が発生しますか?もしそうなら、私はPHPでこれを行うのが速くなると思います、間違っていますか?
ああ、私は参照してください。+1 – stack
@stack +1に感謝しますが、あなたの質問に適切に答えた場合、回答を受け入れることができます。 :) –