同じサブクエリを 2 回使用する SQL スクリプト (現在 SQLite に対して実行されていますが、おそらくどの DB エンジンに対しても機能するはずです) があります。一度だけ呼び出したい。
クエリの短縮された疑似バージョンは次のようになります。
SELECT * FROM
([the subquery, returns a column of ids]) AS sq
[a couple of joins, that fetches things from other tables based on the ids]
WHERE thisorthat NOT IN ([the subquery again])
名前 ( sq
) をさまざまな方法 (括弧の有無、sq の列の名前の有無など) で使用しようとしましたが、役に立ちませんでした。
本当にこのサブクエリを繰り返す必要がありますか?
明確化: 私は何ができるかの小さなデモとして python と sqlite でこれを行っていますが、可能な限り変更を加えずに可能な限りスケーリングするソリューションを望んでいます。実際の状況では、データベースには数百万行ありますが、私の例では、ダミー データを含む行は 10 行しかありません。したがって、たとえば MySQL で十分に最適化されるコードで十分です。特に SQLite 用に最適化する必要はありません。しかし、私が言ったように、必要な変更が少ないほど良い.