問題タブ [semi-join]
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 - どのような参加が必要ですか?
私は投票テーブルを持っています:
そしてゲームテーブル:
「[ユーザー A がゲームに投票した] のゲームから * を選択」というクエリを実行するには、どのような結合を使用しますか?
Jeff のガイドに従ってみましたが、期待した結果が得られません。
sql - 「select ... where in」と結合の同等性
table1
次のようなものがあるとします。
そして、table2
このような:
次の 2 つのクエリは、すべての条件下で同じ結果セットを返しますか?
ばかげたことを本当に見逃していない限り、私はそう言うでしょう。しかし、この形式に要約される 2 つのクエリを実行したところ、異なる結果が得られました。WHERE IN を使用したネストされたクエリがいくつかありますが、最後のステップでは、JOIN の方がはるかに高速であることに気付きました。ネストされたクエリはすべて完全に分離されているため、問題があるとは思わないので、上記に関して誤解している可能性を排除したいだけです。
洞察をありがとう。
編集
2 つの元のクエリ:
編集2
クエリが異なる結果を返した理由はまだわかりませんが、いくつかの部分で間違った列を使用していたため、最初からロジックに欠陥があったようです。上記のようにクエリの解釈を間違えた、またはタイプミスがあったと言っているわけではありません。別のものを選択する必要があっただけです。
普段はこういうことを理解するまで休まないのですが、とても疲れていて、1月以来初めての連休に突入するので、今さら検索する気にはなれません。 . ここで紹介したヒントは、後で役に立つと確信しています。すべてのヘルプに対して賛成票が配布され、Ypercube の回答を受け入れました。これは主に、彼のコメントが私を最も遠ざけたからです。でも、ずっとありがとう!後で詳細が判明した場合は、再度 ping を実行したことを思い出そうとします。
sql - SQL クエリ結合 2 テーブル
私はSQLが初めてで、結合について読んでいましたが、少し混乱しているので助けが必要でした....
StudentIDとSportIDを格納するstudent_sportというテーブルがあります
試合の詳細を保存する別のテーブルがあります...基本的にはsportsID、MatchId、....
私がやりたいことは....特定の学生のために、試合が行われたスポーツを表示します。すなわち。スポーツIDが2番目のテーブルにのみ存在する場合、学生がどのスポーツをするかを確認すると、それが表示されます。
resultSet には、試合が行われた生徒のスポーツのみを含める必要があります....
ありがとう
sql - キーが発生する回数ではなく、特定の外部キーの存在に基づいてクエリを書き直すにはどうすればよいですか?
最も一般的なケースでは、次のようなクエリがあります。
本質的に、私は欲しい:
学校の名前、その学校に通う生徒の数、任意の科目の家庭教師、Schoolid
私が実際に得ているのは
学校の名前、その学校の生徒が教えたすべての科目の合計、schoolid-つまり、生徒1の家庭教師が3科目、生徒2の家庭教師が5の場合、2を返す代わりに8を取得します。
問題は次のステートメントにあることに気づきました。
これは、リモートテーブル内の特定の外部キーの存在をチェックするのではなく、そのキーの各インスタンスの結果を提供します。
私が理解しようとしているのは、キーが発生する回数ではなく、指定されたキーの存在だけに制限するようにバインドする方法です。私のSQLクラスでこれに似たケースを見たことは知っていますが、解決策が何であったかを思い出せません。
sql - SQLクエリを関係代数に変換する
SQLクエリを関係代数に変換するのに助けが必要です。
SQLクエリは次のとおりです。
IN
上記の例のサブクエリが原因でスタックしています。
このSQLクエリを関係代数で表現する方法を誰かに教えてもらえますか?
どうもありがとう。
編集:これが関係代数で提案された解決策です。これは正しいです?SQLクエリを再現しますか?
Scodes←ΠServerCode(σCustomerCode= '102'(予定))
Ccodes←ΠCustomerCode(Appointment⋉Scodes)
結果←(顧客⋉Ccodes)
sql - SQLセミジョイン最適化
二つのテーブルがあります
t1 と t2 は Oracle パーティション テーブルです。t2 が大きい。
t2 から時間範囲に一致する t1 を取得したい:
サブクエリは約 10K の t1_id を返します。それは本当に遅いです、何か提案はありますか?
php - MYSQL クエリの二重結合
これは私のクエリです:
psttodo-in
Sequal Pro で自分のテーブルをチェックして、行を選択するSegment No_ PST = PSS1400146
と、 とDeelgebied = 2
数えます84
。しかし、クエリを実行すると、の結果が得られます252
。私は何を間違っていますか?
更新:
私のテーブル構造:
mysql - nullを返すMysqlサブクエリ
以下のクエリを実行すると、NULL が返されます。
最後の行を取り出すとレコードが返されますが、追加すると何も得られないため、サブクエリの問題であると思われます。
サブクエリを単独で実行すると、2 つの ID (14 と 15) が得られます。サブクエリを「AND s.id IN (14,15);」に置き換えると、...できます。何かご意見は?
sql - 'NOT EXISTS' の Hive LEFT SEMI JOIN
単一のキー列を持つ 2 つのテーブルがあります。テーブル a のキーは、テーブル b のすべてのキーのサブセットです。テーブル a にないキーをテーブル b から選択する必要があります。
Hive マニュアルからの引用は次のとおりです。 LEFT SEMI JOIN を使用する際の制限は、右側のテーブルが結合条件 (ON 句) でのみ参照され、WHERE 句や SELECT 句などでは参照されないことです。 "
彼らは説明のために次の例を使用します。
に等しい
しかし、私がする必要があるのは、「NOT IN;」を使用した最初の例です。残念ながら、この構文は Hive 0.13 ではサポートされていません。これは説明のみを目的としています。
このサイトで推奨事項を検索したところ、次の例が表示されました。
期待どおりに動作しません。a.key NOT in b と a.key IN b に参加すると、この方法では元の a を取得できません。太字のテキストに注意してください - b.key は WHERE に表示されるべきではありません。
じゃあどうすればいいの?他のトリックはありますか?ありがとう!
PS私は実際のデータを共有することはできません。これは非常に単純な例で、a のキーはすべて b に含まれ、a は b のサブセットです。