私は2つのテーブルを持っています:
++++++++++++++++++++++++++++++++++++
| Games |
++++++++++++++++++++++++++++++++++++
| ID | Name | Description |
++++++++++++++++++++++++++++++++++++
| 1 | Game 1 | A game description |
| 2 | Game 2 | And another |
| 3 | Game 3 | And another |
| .. | ... | ... |
++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++
| GameReviews |
+++++++++++++++++++++++++++++++++++++++
| ID |GameID| Review |
+++++++++++++++++++++++++++++++++++++++
| 1 | 1 |Review for game 1 |
| 2 | 1 |Another review for game 1|
| 3 | 1 |And another |
| .. | ... | ... |
+++++++++++++++++++++++++++++++++++++++
オプション1:
SELECT
Games.ID,
Games.Name,
Games.Description,
GameReviews.ID,
GameReviews.Review
FROM
GameReviews
LEFT JOIN
Games
ON
Games.ID = GameReviews.GameID
WHERE
Games.ID=?
オプション2:
SELECT
ID,
Name,
Description
FROM
Games
WHERE
ID=?
次に、IDを選択し、GameReviews WHERE GameID =?
Games
明らかに、クエリ1は、記述するコードが少ない場合は「単純」であり、もう1つは、テーブルを1回だけクエリするため、データベース上で論理的に「簡単」に見えます。問題は、それが実際にそれを実現するとき、パフォーマンスと効率に本当に違いがあるのかということです。