次の表があるとします。
InstalledApps
MachineName | AppName | Version
-------------------------------
machine01 | App01 | 1.1
machine01 | App02 | 1.0
machine01 | App03 | 1.5
machine02 | App04 | 2.0
machine02 | App02 | 1.0
machine02 | App01 | 1.1
machine03 | App06 | 7.9.9
machine03 | App01 | 1.1
machine03 | App07 | 11.5
machine03 | App02 | 1.0
Apps
与えられた「n」台のマシンに共通するものを選択する必要があります。これは「n」セット間の交差です。しかし、私はまともなクエリを思い付くのに苦労しています。
私はこのようなことができることを知っています:
SELECT AppName, Version
FROM InstalledApps
WHERE MachineName = 'machine01'
INTERSECT
SELECT AppName, Version
FROM InstalledApps
WHERE MachineName = 'machine02'
それは私に与えます
AppName | Version
------------------
App01 | 1.1
App02 | 1.0
しかし、事前にマシンの数を知らなくてもそれを実行できる方法はありますか?何かのようなもの
SELECT......
FROM InstalledApps
WHERE MachineName IN ('machine01',...'machine99')