問題タブ [subquery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - サブセレクトの値をマスターセレクトの値と比較する
MS Access では、外側のクエリの列を内側のクエリの条件として使用したいクエリがあります。
重要なポイントはFirstOfattendance_date
、マスター選択の各反復で値を使用するために、サブ選択の深い部分で比較したいということです。明らかにこれは機能しませんFirstOfattendance_date
。実行しようとすると値を尋ねられます。
VBコードに頼らずにこれをやりたいのですが...何かアイデアはありますか?
sql - JOIN 構文での MySQL 相関サブクエリ
innertable.id = outertable.id を指定して、内部クエリに WHERE 条件を提供したいと考えています。ただし、MySQL (5.0.45) は「'where 句' の不明な列 'outertable.id'」を報告します。このタイプのクエリは可能ですか?
内部クエリは、GROUP BY を使用して行を列にピボットしています。これは完全に外側のクエリで実行できますが、追加の結合により追加のオーバーヘッドが発生する可能性があります。
別の方法として、内側のクエリで WHERE 条件を省略し、代わりに ON outertable.id = innerquery.id を指定することもできますが、内側のクエリの行セット全体をフェッチして、外側のクエリを再度結合することになり、非効率的です。
実際の SQL は次のようになります。
.net - カウントを含むサブクエリで左結合を使用する Linq
SQL を linq 構文に変換するのに苦労しています。
CategoryID で相互に参照する 2 つのテーブル (Category と CategoryListing) があります。Category テーブル内のすべての CategoryID のリストと、CategoryListing テーブル内の対応するすべての一致の CategoryID のカウントを取得する必要があります。CategoryID が CategoryListing に存在しない場合でも、CategoryID が返される必要がありますが、頻度は 0 です。
次の SQL クエリは、期待される結果を示しています。
sql - SQL クエリのパフォーマンスに関する質問 (複数のサブクエリ)
私はこのクエリを持っています:
これは、アクティブなリビジョンがない場合を除き、各ページとそれぞれの最新のアクティブなリビジョンを返します。アクティブなリビジョンがない場合は、単に最新のリビジョンを返します。
これを最適化してパフォーマンスや一般的な読みやすさを向上させる方法はありますか? 今のところ問題はありませんが、心配なのは、これが実稼働環境 (大量のページが存在する可能性がある環境) に入ると、パフォーマンスが低下することです。
また、私が知っておくべき明らかな問題はありますか? サブクエリの使用は常に私を悩ませますが、私の知る限り、サブクエリなしではこれを行うことはできません.
注:
条件が WHERE 句ではなく JOIN にある理由は、他のクエリ (これと同じロジックが使用されている場合) で、「サイト」テーブルから「ページ」テーブルに LEFT JOIN しているためです。まだサイトを返してほしい。
ジャック
編集: MySQLを使用しています
mysql - この遅い mysql クエリを改善するためのヒントはありますか?
通常は 1 秒未満で実行されるクエリを使用していますが、完了するまでに 10 ~ 40 秒かかる場合があります。サブクエリがどのように機能するかについては、実際には完全に明確ではありません。faverprofileid ごとに 15 行が得られるという点で、それが機能することだけはわかっています。
遅いクエリをログに記録すると、5823244 行が検査されたことがわかります。これは、関連するテーブルのいずれにもそれほど多くの行がないため、奇妙です (お気に入りテーブルには 50,000 行が最も多くあります)。
誰かが私にいくつかの指針を提供できますか? サブクエリの問題であり、ファイルソートを使用する必要がありますか?
編集: Explain を実行すると、 users テーブルがインデックスを使用していないことが示されます (id が主キーであっても)。余分な下には、次のように書かれています:一時的な使用。ファイルソートの使用。
sql - SQLサブクエリを結合に変換する方法
1:nの関係を持つ2つのテーブルがあります:「content」と「versioned-content-data」(たとえば、記事エンティティとその記事で作成されたすべてのバージョン)。各「コンテンツ」のトップバージョンを表示するビューを作成したいと思います。
現在、私はこのクエリを(単純なサブクエリで)使用しています:
サブクエリは、実際には、特定のアイテムの最高バージョンを抽出する同じテーブルへのクエリです。バージョン管理されたアイテムは同じfk_idothertableを持つことに注意してください。
SQL Serverで、このクエリのインデックス付きビューを作成しようとしましたが、インデックス付きビューではサブクエリが許可されていないため、作成できないようです。それで...ここに私の質問があります...このクエリをJOINを使用してある種のクエリに変換する方法を考えられますか?
インデックス付きビューには次のものを含めることができないようです。
- サブクエリ
- 一般的なテーブル式
- 派生テーブル
- HAVING句
私は絶望的です。他のアイデアは大歓迎です:-)
どうもありがとう!
oracle - FROM リスト内の Oracle 相関サブクエリ
FROM
Oracleのステートメントの句で相関サブクエリを実行しようとしましたが、相関を実行SELECT
できないことを示すエラーが表示されました (Obs.pID
認識されなかった効果の何か)。
これは機能するはずですか?
私の回避策は、それを相関関係のないサブクエリにし、完全に実行されないようにする基準をサブクエリに追加することのようです。
ただし、可能であれば、それを適切に関連付ける方法を見つけたいと思います-そのサブクエリのように機能するビューは、構築に永遠にかかります。
sql - SQL: サブクエリに基づいて結果セットを制限する必要がある
私はかなり奇妙な問題に遭遇しました。mysql データベースで使用する次のサンプル データがあります。
何が起こっているかというと、別のプロセス (私の制御下にない) がデータ パケットを受信し、それらを到着時刻のタイムスタンプと共にデータベースに直接格納しています。パケットはバーストで到着するはずです... a、bは互いに近くに到着し、インデックス1と2が付けられ、各パケットには送信されたパケットの「合計」数が含まれます。key は通常の自動増分主キーです。
私が必要としているのは、到着した最新のリストを表示するビューです (すべてのパケットが到着していない場合、部分的なリストは許容されます)。
上記のクエリの場合、結果は理想的には「f」のみになるはずですが、それを行う方法がわかりません。別の方法で取得できない場合は、"a" と "f" を返すこともできます。つまり、select ステートメントによって捕捉される少量の余分なデータは大きな問題ではありません。「f」が到着する前の期間の正しい戻り値は、c、d、および e です。
私の一般的な考えは、次のようなものです。
お気づきの方もいらっしゃると思いますが、LIMIT 句でサブクエリを実行することはできません (少なくとも mysql では)。誰かがこの問題を解決するための別のアプローチを持っていますか? 上記のクエリは、最近の ID の小さなリストに JOIN をネストすることでより明確にすることができますが、それでもサブクエリに LIMIT サブクエリの問題が残ります。
2 段階のクエリであるため、これは比較的簡単です。問題は、それが VIEW の選択ステートメントを定義する必要があることです。
間違ったSQLの例を修正するために編集
mysql - INSERT ステートメント内でサブクエリを使用できますか?
1 つのフィールド値が別のテーブルから計算された状態で、テーブルに行を挿入する必要があります。2 つのクエリを実行して競合状態になる危険を冒すよりも、すべてを 1 つのステートメントで実行する方がよいと考えました。
...しかし、これは機能しません。これを1つのステートメントで達成できる方法はありますか? そうでない場合、お勧めは何ですか?
sql - Mysql サブクエリの質問
次の 2 つのテーブルがあるとします。
0 より上Foo.name
に対応するものがないすべての s を見つけるにはどうすればよいですか?Bar,value
例えば: