上の2つの異なるデータセットをテスト・ジョインと選択しますのは、私はUsersテーブルがあるとしましょう私は、ユーザーが持っていると、多くの「活動」に所属し、そしてそれらの活動がACTIVITY_TYPEによってグループ化されているデータベースを持っている同じ列
users
-------
id
name
.....
および活動テーブル及びタイプ
activities
----------
id
name
activity_type_id
。
activity_types
--------------
id
name
とテーブルを結合する
activities_users
------------------
user_id
activity_id
そこで質問です:
私はACTIVITY_TYPE IDS 5と7を持っている、と誰がユーザーをもたらすクエリを作成する必要がある場合タイプ5およびタイプ7の活動中であった。
どのようにしてt彼の質問は達成されるだろうか?
SELECT users.id, users.name, users.email, users.phone FROM users
JOIN activities_users ON (
users.id = activities_users.user_id AND
(
activities_users.activity_id IN (SELECT activities.id FROM activities where activities.activity_type_id IN (5))
AND
activities_users.activity_id IN (SELECT activities.id FROM activities where activities.activity_type_id IN (7))
)
);
をしかし、第5行にACTIVITY_IDが同時に1つのデータセットと他のになることはありませんので、私は空のセットを持つことになります実現:
はこれをしようとしました。
おはようございます!