問題タブ [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.

0 投票する
4 に答える
269 参照

sql - どのような参加が必要ですか?

私は投票テーブルを持っています:

そしてゲームテーブル:

「[ユーザー A がゲームに投票した] のゲームから * を選択」というクエリを実行するには、どのような結合を使用しますか?

Jeff のガイドに従ってみましたが、期待した結果が得られません。

0 投票する
5 に答える
314 参照

sql - 「select ... where in」と結合の同等性

table1次のようなものがあるとします。

そして、table2このような:

次の 2 つのクエリは、すべての条件下で同じ結果セットを返しますか?

ばかげたことを本当に見逃していない限り、私はそう言うでしょう。しかし、この形式に要約される 2 つのクエリを実行したところ、異なる結果が得られました。WHERE IN を使用したネストされたクエリがいくつかありますが、最後のステップでは、JOIN の方がはるかに高速であることに気付きました。ネストされたクエリはすべて完全に分離されているため、問題があるとは思わないので、上記に関して誤解している可能性を排除したいだけです。

洞察をありがとう。

編集

2 つの元のクエリ:

編集2

クエリが異なる結果を返した理由はまだわかりませんが、いくつかの部分で間違った列を使用していたため、最初からロジックに欠陥があったようです。上記のようにクエリの解釈を間違えた、またはタイプミスがあったと言っているわけではありません。別のものを選択する必要があっただけです。

普段はこういうことを理解するまで休まないのですが、とても疲れていて、1月以来初めての連休に突入するので、今さら検索する気にはなれません。 . ここで紹介したヒントは、後で役に立つと確信しています。すべてのヘルプに対して賛成票が配布され、Ypercube の回答を受け入れました。これは主に、彼のコメントが私を最も遠ざけたからです。でも、ずっとありがとう!後で詳細が判明した場合は、再度 ping を実行したことを思い出そうとします。

0 投票する
4 に答える
6860 参照

sql - SQL クエリ結合 2 テーブル

私はSQLが初めてで、結合について読んでいましたが、少し混乱しているので助けが必要でした....

StudentIDとSportIDを格納するstudent_sportというテーブルがあります

試合の詳細を保存する別のテーブルがあります...基本的にはsportsID、MatchId、....

私がやりたいことは....特定の学生のために、試合が行われたスポーツを表示します。すなわち。スポーツIDが2番目のテーブルにのみ存在する場合、学生がどのスポーツをするかを確認すると、それが表示されます。

resultSet には、試合が行われた生徒のスポーツのみを含める必要があります....

ありがとう

0 投票する
3 に答える
101 参照

sql - キーが発生する回数ではなく、特定の外部キーの存在に基づいてクエリを書き直すにはどうすればよいですか?

最も一般的なケースでは、次のようなクエリがあります。

本質的に、私は欲しい:

学校の名前、その学校に通う生徒の数、任意の科目の家庭教師、Schoolid

私が実際に得ているのは

学校の名前、その学校の生徒が教えたすべての科目の合計、schoolid-つまり、生徒1の家庭教師が3科目、生徒2の家庭教師が5の場合、2を返す代わりに8を取得します。

問題は次のステートメントにあることに気づきました。

これは、リモートテーブル内の特定の外部キーの存在をチェックするのではなく、そのキーの各インスタンスの結果を提供します。

私が理解しようとしているのは、キーが発生する回数ではなく、指定されたキーの存在だけに制限するようにバインドする方法です。私のSQLクラスでこれに似たケースを見たことは知っていますが、解決策が何であったかを思い出せません。

0 投票する
2 に答える
5230 参照

sql - SQLクエリを関係代数に変換する

SQLクエリを関係代数に変換するのに助けが必要です。

SQLクエリは次のとおりです。

IN上記の例のサブクエリが原因でスタックしています。

このSQLクエリを関係代数で表現する方法を誰かに教えてもらえますか?

どうもありがとう。

編集:これが関係代数で提案された解決策です。これは正しいです?SQLクエリを再現しますか?

Scodes←ΠServerCode(σCustomerCode= '102'(予定))

Ccodes←ΠCustomerCode(Appointment⋉Scodes)

結果←(顧客⋉Ccodes)

0 投票する
1 に答える
220 参照

sql - SQLセミジョイン最適化

二つのテーブルがあります

t1 と t2 は Oracle パーティション テーブルです。t2 が大きい。

t2 から時間範囲に一致する t1 を取得したい:

サブクエリは約 10K の t1_id を返します。それは本当に遅いです、何か提案はありますか?

0 投票する
1 に答える
244 参照

php - MYSQL クエリの二重結合

これは私のクエリです:

psttodo-inSequal Pro で自分のテーブルをチェックして、行を選択するSegment No_ PST = PSS1400146と、 とDeelgebied = 2数えます84。しかし、クエリを実行すると、の結果が得られます252。私は何を間違っていますか?

更新

私のテーブル構造:

0 投票する
2 に答える
689 参照

mysql - nullを返すMysqlサブクエリ

以下のクエリを実行すると、NULL が返されます。

最後の行を取り出すとレコードが返されますが、追加すると何も得られないため、サブクエリの問題であると思われます。

サブクエリを単独で実行すると、2 つの ID (14 と 15) が得られます。サブクエリを「AND s.id IN (14,15);」に置き換えると、...できます。何かご意見は?

0 投票する
4 に答える
31478 参照

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 のサブセットです。