問題タブ [outer-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-server-2005 - 左外部結合から上位のものを選択
みんな、基本的にユーザーが使用した最新のブラウザーを選択するクエリがあります。
これが(簡略化された)テーブル構造です
これが、ユーザーが使用した最新のブラウザーを照会する方法です
HITS_TABLE は数日前に追加されたばかりです。
したがって、そのクエリは、HITS_TABLE を追加した後に Web サイトにアクセスしたユーザーの結果であり、他のユーザーは除外されます。
サンプルケースはこちら
サンプル結果はこちら
しかし、「不明な」ブラウザで他のユーザーを追加したいです。ここに私の望ましい結果があります
LEFT OUTER JOINで実現できると思います。しかし、私はいつもこれを持っていました: (私はこの結果を望んでいません)
私の質問が明確であることを願っています。
sql - テーブルをそれ自体と結合するときに重複行を除外する方法
私の問題を説明するのに役立つサンプルテーブルを次に示します。
テーブルを結合して、同じサイト ID 値を持つ行をまとめようとしています。これが私の試みです:
これは、最初の 2 行を除いて、基本的に私が探している結果です。そのうちの1つをなくしたいと思います。だから、私は次のことを試しました:
これはまさに私が探している出力です。ただし、これが GROUP BY を使用する標準的な方法ではないことを知り、上記のステートメントは ORACLE で失敗し、
一般的な SQL エラー。
ORA-00979: GROUP BY式ではありません
最後のテーブルのような結果を取得し、ORACLE で動作する方法について誰か助けてもらえますか?
sql - 外部結合または動的クエリ、どちらが最善の方法ですか?
次の表があります (表に含まれるデータを単純化しました)。
RateExtra には、キーの 1、2、3 と名前のガソリン サーチャージ、管理費、GST の 3 つの値のみが含まれます。
これは、現在の目的に対しては正常に機能しています。値のリストが一致するレコードとともに表示され、RateExtra は rate_extra_name についてのみ照会されます。
したがって、次の結果が得られる可能性があります。
- 料金表1、1、ガソリンサーチャージ
- 料金表1、2、管理費
- 料金表2、3、ガソリンサーチャージ
- 料金表4、4、GST
- 料金表6、5、ガソリンサーチャージ
これを変更して、返される各レコードに RateExtra テーブルの各値のレコードが含まれるようにするよう依頼されました。一致するレコードがない場合、RateTableExtra テーブルのデータは NULL として返されます。したがって、私のデータは次のように返されます。
- 料金表1、1、ガソリンサーチャージ
- 料金表1、2、管理費
- Ratetable1、NULL、GST
- 料金表2、3、ガソリンサーチャージ
- Ratetable2、NULL、管理費
- Ratetable2、NULL、GST
- Ratetable4、NULL、PetrolSurcharge
- Ratetable4、NULL、管理費
- 料金表4、4、GST
- 料金表6、5、ガソリンサーチャージ
- Ratetable6、NULL、管理費
- Ratetable6、NULL、GST
OUTER 結合を試してみましたが、機能していないようです。RateExtra データが、null を返す RateTableExtra にリンクされているためだと思います。元の結果セットを取得する動的クエリを作成し、rate_extra_id を確認して反復し、結果セットにまだない場合は、必要な場所に NULL データを含む結果に新しい行を追加することを検討しています。これでうまくいくと思いますが、パフォーマンスのキラーになると感じています。
これを行うより良い方法はありますか?誰かが助けてくれることを願っています。
nhibernate - NHibernate左アウター参加サブクラス
私は2つのエンティティの製品と画像を持っています。すべての画像が製品画像であるとは限りません。画像はファイルのサブクラスであり、以下は私のエンティティです。商品に関連付けられていないすべての画像を見つける必要があります。私はエンティティの取得に不慣れで、多くのアプローチを試しました。任意のアイデアやリンクをいただければ幸いです。
linq-to-sql - UNION操作に影響を与えるLinqとnull許容キーの関係
次に例を示します。
国、人、都市の3つのテーブルがあるとします。都市レコードには、国を識別するnull不可の外部キーフィールドがあります。人のレコードには、国を識別するnull許容の外部キーフィールドがあります。これらは、もはや存在しない東ヨーロッパの国からのものである可能性があります。
人々のリストと都市のリストから国の組み合わせリストを作成したいと思います。
問題はその最後の行から来ています。すべての人のレコードに一致する国のレコードがあるわけではないため、LINQは(正しく)すべての国のない人に対してnullで満たされた行があることを確認するクエリを作成しています。デバッガーでは、これは「[test]」というダミー列呼び出しを作成することによって行われるようです。
その余分な列[test]はコード側でサイレントに削除されますが(結果はIQueryableとして識別されます)、SQL側では間違いなくそこにあり、通常の国の選択と結合するとクエリが拒否されます。声明。
最後のケースでは、余分なダミー行は必要ないか、必要ありません。完全なプログラムには、すでに含まpeople.Where(p=>p.CountryID != null).Select(p=>p.Country)
れているだけでなく、試してみp=>Country != null
ました。
ただし、Linqは、これによってnull行が防止されることを認識しないため、テスト列を挿入します。テスト列は表示されないため、IQueryableオブジェクトとして報告されているものからテスト列を「削除」する明確な方法はありません。最終的な結果は、列の数が等しくないUNIONコンストラクトに関する実行時エラーです。
null許容型の関係でINNERJOINを強制する方法、または非表示のテスト列を除外してユニオンを希望どおりに機能させるにはどうすればよいですか?
hibernate - Hibernateの左外部結合の結果に適したオブジェクト構造
特定の会社に関連付けられているすべての定義とそれらに関連付けられているプロパティを取得する外部結合クエリを作成する必要があります。
2つのHibernateモデルオブジェクトがあります。
したがって、クエリは次のようになります。
これまでのところ、すべてが桃色です。私が抱えている問題は、返されたデータをどのような構造で保存するかということです。Hibernateはリストを返します。ここで[0]はPropertyDefinition(nullであってはなりません)であり、[1]はnullの可能性があるPropertyです。
私の問題:
- オブジェクトのリスト[]を渡すのは不快で、あまりOOフレンドリーではありません。
- PropertyDefinitionが保持するプロパティのリストは会社に限定されていないため、私はPropertyDefinitionを保持することはできません。
- PropertyDefinitionと場合によってはnullプロパティへの参照を保持する単純なオブジェクトを作成できますが、リスト全体を反復処理してそれぞれをこの新しいオブジェクトに配置するのは非効率的です。
より良いクエリまたはより良いマッピング構造についての提案がありますか?助けていただければ幸いです。
sql - 複数のテーブルからの SQL SELECT
customers1 と customers2 から顧客名を含むすべての製品を取得するにはどうすればよいですか?
結果は次のようになります
linq-to-sql - LinqToSQL で FULL JOIN を生成する
私はこのlinqクエリを持っています:
生成するもの:
しかし、私は生成したい:
言い換えれば、私はこのクエリに対して完全な外部結合を生成したいだけでなく、残したくないのです。
誰かがこれを簡単な方法で行う方法を知っていますか?
ありがとう
linq - エンティティへのLinq左結合
LinqtoEntitiesで次のことを実現したいと思います。
アプリケーションがない、またはアプリケーションのステータスが!= 4(完了)のすべての問い合わせを取得する
Linq to EntitiesでサポートされていないDefaultIfEmpty()を使用せずにこれを行ったことはありますか?
次のようなIQueryableクエリにフィルタを追加しようとしています。
ありがとうマーク
hibernate - null 許容多対 1 の Hibernate デフォルト結合
ProductDfn クラスにこのような休止状態のマッピングがあります
リレーションシップはオプションとして定義されていることに注意してください (列は null 許容です)。
このようなHQLを行うとき
内部結合を使用して ProductDfn を ProductType に結合します。これは、hibernate が select 句の暗黙的な結合から明示的な SQL 結合を生成するためです。
ただし、productType が (DB で) null のときに上記を実行すると、内部結合のために行が返されません。この関係では、休止状態のデフォルトで外部結合を実行したいと思います(関係はオプションであるため)。そのため、行がまったくないのではなく、col2の「null」が返されます。
これが可能かどうか誰にもわかりますか?
ありがとう。