問題タブ [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.
ruby-on-rails - decent_exposure で自己結合を処理するにはどうすればよいですか?
インスタンスにForum多くのネストされたフォーラムを含めることができるモデルがあります。
私のルートは次のようになります。
さて、コントローラーで:
:createアクションでは、行によって生成されたコードがでexpose(:nested_forum)フォーラムを作成しようとしますparams[:nested_forum]。私は自己結合を使用しており、NestedForumモデルがなく、それを に伝える方法がないように見えるため、これは厄介な状況ですdecent_exposure。
この状況を処理するにはどうすればよいでしょうか。
sql - 集約自己結合を使用してクエリを更新する
自己参加を使用して、年初来の合計を取得しています。これは機能します:
これにより、従業員ごとにリセットされる現在の合計列が表示されます。
次に、それをUPDATEクエリに変換して、そのデータを新しい列に配置します。これはどのように行われますか?
mysql - 条件付きの同じテーブルの結合クエリ
カテゴリとサブカテゴリの両方を同じテーブルに挿入しました。
id、name、mainCat、
カテゴリの名前は次のとおりです。ユーザーがサブカテゴリを追加すると、親カテゴリがmaincatに追加され、サブカテゴリが名前に追加されます。
しかし、並べ替えるときは、カテゴリごとに並べ替えます。
誰もが私に最高のクエリを提案できますか
sql - 2番目の列が選択されたときにINNERJOINを使用したSELECTステートメントで行数が増えるのはなぜですか?
SQLServerで自己結合を使用していくつかのクエリを作成しています。SELECT句に列が1つしかない場合、クエリは特定の行数を返します。テーブルの2番目のインスタンスからSELECT句に別の列を追加すると、結果は1000行増加します。
これはどのように可能ですか?
ありがとう。
編集:
FROM句にサブクエリがあります。これも同じテーブルの自己結合です。
linq - ASP.NET MVC3 での LINQ 自己結合
LINQ のテーブルで自己結合を行う必要がある状況があります。このテーブルは、ItemsID、Title、SeriesTitle などの多くのフィールドで構成されています。アイテムはシリーズまたはメンバーのいずれかであり、"S" または "M" の文字が含まれる ItemId を調べればわかります。ItemId "S117" を持つシリーズのメンバーであるすべてのレコードを取得する必要があります。以下のコードを使用して、単純な SQL でこれを行うことができます。
さて、このクエリを LINQ で翻訳すると、次のようになります。
このクエリの最後の行は、select seriesシリーズのみを取得しますが、メンバーは取得しません。メンバーも必要です。ほとんどすべてのフィールドを表示する必要があるMVC3 Razorビューを使用しているため、使用していません を使用 select new {....}
しようとしてもselect new {series, members}、この例外が発生しました-
タイプ 'System.Linq.IQueryable' を 'System.LinQ.IQueryable<My.App.models.Items>' に暗黙的に変換することはできません 明示的な変換が存在します。
どんな提案でも大歓迎です。
c# - Linq の自己結合とフィルター処理
私はList<ClaimEvent>このクラスで構成されています:
「ClaimEventType」はそうです...
Cancelsは、このイベントが の順序で並べられたリストの後に表示されたときにキャンセルされるすべてのイベント タイプを示していますOccurredOn。は逆です。つまり、イベントの 1つがその後に現れるCancelledByと、イベントはキャンセルされます。CancelledBy
これらのオブジェクトのリストをクエリして、リスト内の他のアイテムによってキャンセルされたアイテムが結果に表示されないようにするにはどうすればよいですか?
sql - SQL Server 2008r2 で自己結合テーブルを使用してデータを集計する
典型的なレストラン タイプのデータベースでレポート機能を提供しようとしています。以下に問題の詳細を説明しますが、一言で言えば、階層型の自己結合「カテゴリ」テーブルに関連するアイテムの集計データ (合計とカウント) を取得できる必要があります。これは冗長でおそらく混乱を招くことはわかっているので、例を挙げて詳細を説明します。この問題に固有の 4 つのテーブルがあります。
ParentId は、カテゴリに戻る FK です
このレポート機能の目的は、categoryId を取得して、一定期間の合計 (またはカウント) を返すことです。着信カテゴリがリーフ カテゴリ (例: ボトル ビール) である場合、この合計を問題なく計算できます。ただし、たとえば「食品」など、階層の上位にある場合、すべての子カテゴリを合計するようにクエリを作成する方法がわかりません。
SQL Server 2008r2 を使用しています。WITH common_table_expression クエリを使用しようとしましたが、「再帰 cte の再帰部分」で許可されていない集計関数に関するエラーが発生しました。
今日のSQLは次のようになります。
繰り返しますが、@categoryId がリーフ カテゴリである場合、このクエリはまさに探しているものを提供します。そうでない場合は、何も返しません。@category=2 (Drinks) を指定して、「Drinks」カテゴリ階層内のすべてのアイテムの合計を取得できるようにしたいと考えています。
ありがとう!
ruby-on-rails - ActiveRecordの複数の自己結合との多対多の関連付け
自己結合を介して同じモデルのレコード間に複数の関係を実装しようとしています(@Shtééfの回答に基づく)。私は次のモデルを持っています
この設定により、各レコードの部下とマネージャーのリストに正常にアクセスできます。しかし、私は次のように関係を築くのに苦労しています
問題はそれが関係のタイプを設定しないということです、それで私は書かなければなりません
私は何か間違ったことをしていますか?
sql-server - SQL Server - 単一の ID を範囲に結合する
多くの整数を含むテーブルがあります。このテーブルがクエリされ、結果が xml に変換されます。たとえば、テーブルに次の項目が含まれているとします。
何らかの処理を行った後の最終的な xml 出力は次のようになります。
xml はかなり大きくなり、多くの項目が実際には範囲になっています。私がやりたいことは、クエリを更新して範囲を結合することです (これらのアイテムの多くは「隣人」であるため、生成される xml はかなり小さくなります)。私は手順の結果を次のようにしようとしています:
最終的な XML は次のようになります (手順を変更するだけで、XML 処理は同じままでかまいません)。
私の最善のルートはどこで自己結合を使用することかもしれないと考えてtable1.itemId = table2.itemId - 1いましたが、それを機能させることができませんでした。これについてどうすればよいかについて誰か提案はありますか?
entity-framework - Entity Framework 4.1 Code First 自己参照 1 対多および多対多の関連付け
好きなユーザーのコレクションを持つことができるユーザーがいます...
別のユーザーは、好きなユーザーのコレクションを持つことができます....
ユーザー A がユーザー B を好きで、ユーザー B がユーザー A を好きなら、彼らはたむろするようになります。連絡先情報をお互いに送信する必要があります。このようなモデルを Entity Framework Code First で表現するにはどうすればよいでしょうか?
このモデルは正しいですか?私はこれを機能させることができません。
私は別の方法を試しましたが、それもうまくいきません...
ユーザーのコレクションをユーザーテーブルに追加しようとしました。
例:
ユーザーと好きな人を追加しようとすると、このエラーが発生します。
関係「UserLike_LikeUser」のロール「UserLike_LikeUser_Target」に対する競合する変更が検出されました。
そのようなモデルを表現する最良の方法は何ですか?