問題タブ [correlated-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 - 1行のみを返す外部結合で式を作成する必要があります
非常に複雑な動的SQLを作成しています。ユーザーごとに1行を返す必要がありますが、1対多のテーブルに対して結合する必要があります。少なくとも1つの行が返されることを確認するために外部結合を実行します(そして、そのテーブルにデータがあるかどうかを確認するためにnullをチェックできます)が、複数ある場合は、この外部結合部分から1行だけ戻るようにする必要がありますこのユーザーのこの2番目のテーブルの行。これまでのところ、私はこれを思いついた:( sybase)
サブクエリは、その特定のユーザーの1対多のテーブルで最小値を検索します。
これは機能しますが、表1と表2が非常に大きくなると、相関サブクエリを実行することによる不快感を恐れます。もっと良い方法はありますか?私はそれを行うために参加する方法を夢見ようとしていますが、私はそれを見ていません。また、「where rowcount = 1」または「top1」と言っても役に立ちません。上記のクエリを修正しようとしているのではないため、すでに複雑なクエリに上記を追加しています。
mysql - MySQL/SQL: 更新されたテーブル自体からの相関サブクエリによる更新
例を使用して説明しようとする一般的な質問があります。
「id」、「name」、「category」、「appearance」、「ratio」のフィールドを持つテーブルがあるとします。
アイデアは、複数のアイテムがあり、それぞれが単一のカテゴリに関連し、複数回「表示」されるというものです。比率フィールドには、カテゴリ内のアイテムの総出現数に対する各アイテムの出現率を含める必要があります。
疑似コードで必要なのは次のとおりです。
各カテゴリについて
、それに関連するアイテムの出現回数の合計を見つけます。たとえば、 (select sum("appearances") from table group by category
)で実行できます。各アイテム
の比率の値を、アイテムの外観を上記のカテゴリで見つかった合計で割った値として設定します
今、私は単一の更新クエリでこれを達成しようとしていますが、それができないようです。私がやるべきだと思ったのは:
しかし、MySQL は update 列でエイリアス T を受け入れません。これを実現する他の方法は見つかりませんでした。
何か案は?
sql - 長い CORRELATED サブクエリを繰り返さないようにするには?
私の質問を理解するのに役立つコードは次のとおりです。
これが単純化された例であることを強調するために、コメント付きの AND を付けました。私の実際のクエリのサブクエリは、より多くの条件でより複雑です。
file_location and file_size
私の問題は次のとおりです。基準がまったく同じであるため、両方の列( )のサブクエリですべての基準を繰り返さないようにしたいです。共通テーブル式 (つまり、WITH 句を使用したサブクエリの因数分解) を喜んで使用しますがWHERE mat.content_id = m.content_id
、サブクエリが相関サブクエリになる " " のために使用できません。WITH 句を使用して相関サブクエリを因数分解できないことは、私の理解です。同じ理由で、このサブクエリを FROM 句にインライン ビュー (別名、派生テーブル) として配置することもできません。
基準を 1 回含めて、相関サブクエリを使用して結果セットに複数の列を挿入するにはどうすればよいですか?
sql - SQLServer2005-ネストされた再帰クエリ:(
構造化の方法がわからない、実行する必要のあるクエリがあります。
Employeesというテーブルがあります。Companyという別のテーブルがあります。Filesという3番目のテーブルがあります。ご想像のとおり、会社には従業員がいて、従業員にはファイルがあります。
データベース内のすべての従業員をリストする必要があります。課題は、従業員と同じ会社のファイルの総数をリストする必要があるということです。私は運がなくて次のバリエーションを試しました:
私は何が間違っているのですか?ありがとうございました!
mysql - MySQL: FROM 句で相関サブクエリを使用して MSSQL を書き直しますか?
次のような Web サイトのページ ビューを含むテーブルがあります。
本番テーブルには、現在約 40K 行あります。過去 30 日間、60 日間、および 90 日間に表示されたユニークページの数を日ごとに生成したいと考えています。したがって、結果セットで 1 日を調べて、その日までの 60 日間にアクセスされた一意のページの数を確認できます。
MSSQL で動作するクエリを取得できました。
注: MSSQL には FROM_UNIXTIME 関数がないため、テスト用に NDATE 列を追加しました。これは単に変換されtime
た . NDATE は本番テーブルに存在しません。
このクエリを MySQL に変換すると、「不明な列 P.time」エラーが発生します。
これは、外側の FROM 句でテーブルを参照する相関サブクエリを使用できないためだと理解しています。しかし、残念ながら、このクエリを MySQL で機能するように変換する方法がわかりません。今のところ、テーブルからすべての DISTINCT 行を返し、それを PHP で後処理するだけです。40K 行の場合、約 2 ~ 3 秒かかります。数百から数千の行がある場合のパフォーマンスが心配です。
MySQLで行うことは可能ですか? もしそうなら、私たちのPHP後処理ソリューションよりも優れたパフォーマンスを期待できますか.
更新: テーブルを作成するためのクエリは次のとおりです。
私たちの本番テーブルには、これまでに最大 4 万行あります。
nhibernate - 少なくとも1つの子オブジェクトを持つ親オブジェクトを照会するNHibernate基準?
私のプロジェクトでLines
は、グループ化することができ、 aは(1) または(2)Group
のいずれかのタイプになります。指定されたタイプ (この場合は 1) のグループが少なくとも 1 つあるすべての行を見つける必要があります。特定の行の ID は、列またはグループのいずれかです。これが私がこれまでに得た場所です:Crossing
Parallel
LineA
LineB
mysql - MYSQL Query TAKING ユーザーの参加場所と他のすべての参加者の数量
ユーザーが訪れた場所を追加する Web サイトを作成しています。
メインテーブルは4つ
(where type=2)
ここで、特定のユーザーが(user_id=43 lets say)
場所の名前、都市の名前、および同じ場所に参加している他のすべてのユーザーの数で参加するタイプ 2 のすべての場所を 1 つのクエリで取得する必要があります...昨日、mysqlに関する一冊の本を持ってこんなことにたどり着きました
しかし、エラーが発生しました: 不明な列 'places.place_id' in 'where clause' And still no Idea どうすれば地名と都市名を結果にスマートに添付できますか... できれば助けてください...
sql - Oracle で合計列をサブ選択する
これは、2 つのサブレポートを使用する Crystal レポートの修正の試みです。
3 つのテーブルを結合するクエリがあり、同じ新しいテーブルを取り込むサブ選択のペアを使用したいと考えていました。
スクリプトの 2 つの列のうちの最初の列を次に示します。
これがデータセットを配信するとき、「firstHyp」の値は pegstrip 値によって変更されません。結合の単一の合計を返し、ペグストリップで適切な値を入力できません。where句が結合を1行ずつ拾っていると思いました。
私は Oracle 構文を頻繁に使用しないので、ここで何が欠けているのでしょうか?
ティア
c# - LINQで相関サブクエリを作成することは可能ですか?
親アカウントとそのすべての子アカウントの特定の製品番号のすべての数量の合計を返すLINQクエリを作成したいと思います。
アカウント番号ごとの製品の表があり、各行には数量と親アカウント番号も含まれています。
これは純粋なLINQ構文で可能ですか?代わりに拡張メソッド構文を使用する必要がありますか?
ありがとう、-キース
sql - 相関サブクエリを使用したMySqlスコーピングの問題
私はこのMysqlクエリを持っています、それは動作します:
結果は次のとおりです。
これは正しく機能しますが、必要なIDをクエリにハードコーディングした場合に限ります(37)。m3allemテーブルのすべてのエントリで機能するようにしたいので、これを試してみます。
そして、私はエラーを受け取ります:
'where句'の不明な列'm.id'
なんで?MySqlマニュアルから:
それで...サブクエリがSELECTセクションにある場合、これは機能しませんか?私はそれについて何も読んでいませんでした。
誰か知っている?私は何をすべきか?このクエリを作成するのに長い時間がかかりました...これはモンスタークエリであることはわかっていますが、1つのクエリで必要なものを取得でき、動作するようになりました。
誰か助けてもらえますか?