SQLの基本

SQLにおいて複数のテーブルを扱う時のやり方をやったことがなかったので時間をかけて確認していきました。
備忘録的な感じでメモしていきます。

select * from table1
    where room_id in (select room_id from table2
        group by room_id
        having COUNT(*) = 1)
    and user_id = 1

まずtable2においてroom_id毎にグループを作り(group by)、その個数を調べ、個数が1の場合のroom_idを取得します。その取得したroom_idとuser_idを条件にtable1からレコードを取得するというコードです。havingを用いることによってグループ化した後に条件で絞り込むことが出来ます。