SQL文で問い合わせた結果を使って、さらに問い合わせを行うことを副問い合わせといいます
試しにTAGで【小説家】が割り当たっているIDを探してみたいと思います。
Select * From M_tag Where name='小説家'
これで、tagidに【50】が割り当たっているIDを探せばよいことがわかりました。今度は割り当てテーブルでtagidに50が割り当たっている人を探します。
Select * From T_alocate Where tagid='50'
それぞれのクエリを使って2段階で答えを求めましたが、副問い合わせは、この所作を一度に行い答えを導きます。
書き方は以下のようになります。
Select * From T_alocate
Where tagid=
(
Select
tagid
From M_tag Where
name='小説家'
)
如何でしょうか
一番下のクエリだけ見ると複雑に感じますが、直前の2個のクエリは別に難しくはありません。
そのように認識できると、一番下のクエリは、上のクエリが単純につながっているだけだと思えてきませんか?