私は3つのテーブルを持っています。利用可能な様々なダウンロード可能な項目に関する情報を含むPackagesテーブル(関連フィールドはPackageID)、およびApp/Packagesテーブル(関連フィールドはAppIDおよびPackageID)を含むアプリケーション(関連フィールドはAppID)テーブル。アプリケーションごとにダウンロードするパッケージを示します。特定のアプリケーションに関連していないパッケージを調べるためのクエリが必要です。異なるクエリを必要とする3つのテーブルのSQLクエリ
私のアイデアは、アプリケーションに関連するすべてのパッケージのリストを取得し、この結果セットをパッケージに結合し、どのパッケージが関連していないかを示すすべてのnull結果を見つけるためにAppPackagesへのアプリケーション結合でした。
問題は、私はこれらのクエリを連鎖させる方法を考えることができないということです。サブクエリは機能していないように見えますが、EXIST/NOT EXISTには外部クエリの情報が必要です。私は何かシンプルなものがあると思っていますが、私が読むすべての文献は2つのテーブルのためのものであり、決して2つ以上のものはありません。
これは私の最高の試みですが、EXISTSの部分は上記の理由で動作しません。任意の助けを事前に
SELECT Packages.PackageID FROM Packages WHERE NOT EXISTS
(Select AppPackages.PackageID, AppPackages.AppID FROM AppPackages WHERE AppPackages.AppID = @AppID)
感謝:)
乾杯、
マット:)
これは完全に仕事をしていませんが、多くの感謝!私は以前SELECT 1を見たことがありません。これがどのように機能するかを調べなければなりません。 –
@Matty W: 'SELECT 1'は' SELECT * 'の代替形式です。これは、あなたが*実際に*返された列を望んでいないと言っているもう少し明示的な方法です。 – Tomalak
私はasp.netのWebサイトでこのクエリの出力を使用しようとしましたが、4列のそれぞれの列名が同じです... PackageID。これは期待されていますか? –