やあ!簡単な質問をしたいだけです。次のようなテーブルがある場合
- ユーザー
- グループ
- また、クロステーブルuser_groupは、ユーザーが複数のグループに属することができ、グループに複数のユーザーを含めることができるためです。
「友達」を取得したいのですが、どちらのクエリが高速ですか?
SELECT DISTINCT UG1.user_id
FROM user_group AS UG1
WHERE UG1.group_id IN ( SELECT UG2.group_id
FROM user_group UG2
WHERE UG2.user_id = 87 )
SELECT DISTINCT UG1.user_id
FROM user_group UG1
JOIN user_group UG2 ON UG1.group_id = UG2.group_id
WHERE UG2.user_id = 87
答えがデータベース固有の場合、どのデータベースでどちらの方法が高速ですか?