サブクエリ

以前から気になっていたサブクエリについて調べました〜

 

サブクエリとは

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でもサブクエリでも取得できる場合がありますが、サブクエリの方が親しみを感じます…