問題タブ [self-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 - count(*) と自己結合について混乱している
今月と今年のすべての申請日を返したいと思います。これは簡単なはずですが、わかりません。今月は 2 つの日付があり、今年は 90 の日付があることがわかっています。右、左、外側、内側 私はそれらすべてを試しましたが、壁にコードを投げて、何がくっつくかを確認しようとしましたが、どれも機能しませんでした。両方の列で 2 を取得するか、両方の列で 180 を取得します。これが私の最新の選択ステートメントです。
sql - 自己結合クエリ
次の表を検討してください。
自宅の電話は持っているが携帯電話を持っていない人を探しています。
このクエリは機能します:
しかし、これはしません:
2 つの唯一の違いは、h.type = 'home'
条件の場所です。最初の場合はwhere
句内にあり、2 番目の場合は句の一部ですon
。
2 番目のクエリが最初のクエリと同じ結果を返さないのはなぜですか?
sql - 同じテーブル内の共通行を取得する
少し検索しましたが、達成しようとしているものとまったく同じものは見つかりませんでした。
基本的に、私は 2 人のユーザーの投票習慣の類似点を見つけようとしています。
私は、行われた個々の投票を格納するテーブルを持っています。
たとえば、ユーザー A と B の間の類似性を計算するには、次の 2 つのことを調べます。
- 共通の票数。つまり、両者が同じ投稿に投票した回数です (この時点では方向は関係ありません)。
- 一般投票で同じ方向に投票した回数。
(次に、大まかな類似性評価を達成するために、単純に #2 を #1 のパーセンテージとして計算します)。
私の質問は、どうすれば 2 人のユーザーの投票セットの交差を見つけることができるかということです。(つまり、非常に非効率的な方法ですべての投票をループすることなく、ポイント#1を適切に計算するにはどうすればよいですか。)それらが異なるテーブルにある場合、INNER JOINで十分だと思います...しかし、それは明らかに機能しません同じテーブルで(またはそうなるでしょうか?)。
どんなアイデアでも大歓迎です。
mysql - phpMyAdmin を使用して同じテーブルを指す外部キーを追加するにはどうすればよいですか?
別のテーブルを指す外部キーが既にある既存の InnoDB テーブルがあります。
しかし、プライマリ インデックスを指す外部キーを作成しようとすると、エラーが発生します (データ型を確認してください)。
テーブルは User_Id をプライマリとする User です。
User_Id の FK である外部キー Manager_ID が必要です。
INT の両方 長さ 10 の両方 Unsigned...
それでもデータチェックエラーが出る…?
ruby-on-rails - ActiveRecordで再帰的な自己結合関係を行うにはどうすればよいですか?
私はソーシャルネットワーキングスタイルの友情モデルを実装しようとしていますが、そこにあるプラグインを見つけようとしてもあまり運がありませんでした。自分でやれば、Railsをもっとよく学ぶことができると思います。だからここに私が持っているものがあります:
私がこれirb
を試すとき:
エラーが発生します:
友情システムの拡大:
- ユーザーは他のユーザーを友達に招待することができます。
- 友達になるように招待したユーザーは、で表され
invited_friends
ます。 - あなたを友達に招待したユーザーは、で表され
inviter_friends
ます。 - 友達リストの合計は
invited_friends
+で表されinviter_friends
ます。
スキーマ
sql - このシナリオでは、単一の自己結合が存在しますか?
GroupId、Member の 2 つのフィールドを持つテーブル ALPHA があります。
目的: A、B、C の入力が与えられた場合、テーブルをクエリして、この正確なメンバーのセットに GroupId が存在するかどうかを確認する必要があります。だから、これは私がやろうとしていることです:
- カウントが 3 であるすべての GroupId のテーブルを照会します (私の inpt は A、B、C であるため..私はその 3 を知っています)
- これにより、A1、A3が得られます。ここで、このセットに正確に一致するメンバー値を照会します。これにより、A1 が得られます。
ストアド プロシージャを作成する予定で、何とか目的を達成できます。しかし、私の質問は単一のクエリで実現できます...おそらく単一の自己結合です。
明確化: (A,B,C) のセットは A1 に固有です。また、(A、B、C、D) の入力を与える場合、クエリは A1 を返すべきではありません。
hibernate - 休止状態の自己参加
バックグラウンド
id、imageId、propertyId列のテーブルがあります。
単一のプロパティに関連付けられた多くの画像が存在する可能性があり、単一の画像に関連付けられた多くのプロパティが存在する可能性があります。
imageId - many-to-many - propertyId
propertyIdのリストがあり、 Hibernateを使用してすべてのpropertyIdに関連付けられているすべての画像を調べたいと思います。
問題。
ちょうど今、一度に1つのプロパティを選択し、Criteria APIを使用して、このpropertyIdに関連付けられているすべてのimageIdを検索し、imageIdのリストを取得します。次のクエリでこのimageIdのリストを使用して、
select imageIds where imageId in (imageIds obtained in previous step) where propertyId = x
したがって、事実上、DBにヒットするクエリの数はpropertyIdの数と等しくなります。これは良い解決策ではないと思います。データベースにn回アクセスする必要があり、Detached Queryを使用してみましたが、成功しませんでした。より良い解決策はありますか?
また、最終的にimageIdのリストを取得したとき、それをユーザーセッションに保存してページ分割することをお勧めします(結果の数を考慮しないでください)。または、プロセス全体を繰り返すことをお勧めします。ページネーションの目的ですべてDBに保存することを検討しますか?