サブクエリ
以前から気になっていたサブクエリについて調べました〜
サブクエリとは
SELECT文の引数にまたSELECT文が渡されるようなクエリのことです。
例
SELECT * FROM events WHERE id in (1,3,5,7);
このようにin句で絞り込むSELECT文があるとします。
このidの配列を取得するためのSELECT文を直接引数として渡してしまうのがサブクエリです。以下はサブクエリ化したものです。
SELECT * FROM events WHERE id in (SELECT * FROM users WHERE name = Hayashi));
WHEREの引数だけでなく、以下のようにFROMの引数にサブクエリを取ることもできます。
SELECT count(*) FROM (SELECT rate FROM reviews WHERE rate = 1);
サブクエリは一元配列を返すクエリにする必要があります。
感想その他
JOINでもサブクエリでも取得できる場合がありますが、サブクエリの方が親しみを感じます…