私の最後の質問(MySQLiのパフォーマンス、複数の(個別の)クエリとサブクエリ)に関連して、別の質問に出くわしました。
サブクエリを使用して別のテーブルから値を選択している場合があります(たとえば、IDに接続されているユーザー名)が、select-in-selectについてはよくわかりません。これは、あまりクリーンでなく、パフォーマンスについてはよくわかりません。
サブクエリは次のようになります。
SELECT
(SELECT `user_name` FROM `users`
WHERE `user_id` = table2.user_id) AS `user_name`
, `value1`
, `value2`
FROM
`table2`
....
table1の結果とtable2の結果に別々のクエリを使用する方が「良い」でしょうか(接続は2倍になりますが、テーブルをまたぐ必要はありません)、またはJOINを使用して単一のクエリで結果を取得する必要がありますか?
私はまだJOINSとサブクエリの経験があまりないので、この場合、JOINが「多すぎる」かどうかはわかりません。これは、IDに接続された名前が1つだけであるためです(または、テーブルからの行)、またはそれが問題ではない場合は、select-in-selectもある種のJOINのように扱われるためです。
JOINを使用したソリューションは、次のようになります。
SELECT
users.user_name , table2.value1, table2.value2
FROM
`table2`
INNER JOIN
`users`
ON
users.user_id = table2.user_id
....
そして、もし私がJOINを好むべきなら、この場合、どれが最も良いでしょう:左結合、内部結合、または何か他のもの?