サブクエリとIN句を利用し、データを抽出してみようと思います。


例のごとくNorthwindテーブルを利用します。


ProductNameが"Chai"のOrdersを抽出します。


-- code ---------------------


select *
from Orders
where
OrderID IN (
select OrderID
from [Order Details]
inner join Products on [Order Details].ProductID=Products.ProductID
where Products.ProductName='Chai'
)

----------------------------


これで可能です。


IN句は次の使い方でも利用ができるのですが、


-- code ---------------------


-- 直接指定

select *
from Orders
where
OrderID IN (

10285,

10294
)

---------------------------


データベースはリアルタイムに更新されていくので、今現状のを知りたいという時に、サブクエリと合わせる方法もあります。


もちろん、INNER JOINで全部くっつけて、ProductName='Chai'をやっても同様の結果が得られます。

プログラムに意味を持たせるなら、今回のやり方もいいかと思います。