問題タブ [left-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.
mysql - MYSQL は 10 の投稿をフェッチします。それぞれに投票数が含まれ、投票数でソートされ、投稿の where 句で制限されます
投票数がリストされ、投票数でソートされた一連の投稿を取得したい (例)
私は2つのテーブルを持っています:
投稿- 列 - id
, body
,is_hidden
投票- 列 - id
, post_id
,vote_type_id
私が試したクエリは次のとおりです。
正しさ:上記のクエリはほとんど機能します。subselect にはその haveが含まvotes
れているため、 join を に残しておくと、非表示の投稿が上位 10 位 (投票でランク付け) にある場合、フィールドに NULL を持つレコードが表示される可能性があります。posts
is_hidden = 1
posts
yes_count
パフォーマンス: ~50k の投稿と ~500k の投票があります。私の開発マシンでは、上記のクエリは .4 秒で実行されています。この実行時間以下にとどまりたいです。
インデックス:フィールドをカバーする投票テーブルにインデックスがありますvote_type_id
:post_id
説明
php - LEFTJOINでめちゃくちゃ遅いMYSQLDATE関数の実行
行を追加する場合:
私の質問では、スクリプトの実行時間が約8秒から2〜3分に短縮されます。
この問題の原因となるデータがありますか、それとも関数を正しく実装していませんか?
同じ日にする必要があるのでDATE()を使用する必要がありますが、日付フィールドはDATETIMEです
linq-to-sql - 内部結合と 2 つの左結合を使用した SQL から Linq への変換 (サブクエリあり)
SSMSで正常に機能する次のクエリがあります。私は LinqPad ( C# ) を使用していますが、LinqToSql の左外部結合で成功するには本当に困惑しています:
ご覧のとおり、これは作業を開始するための最も洗練されたクエリではありません。両方の左結合のサブクエリを改善できることに同意します。しかし、この翻訳を手伝ってくれませんか??
linq - Linq to Entity Frameworkで外部結合は可能ですか?
Linq to Sql を使用した外部結合の例は多数ありますが、それらはすべて、DefaultIfEmpty()
Linq to Entity Framework でサポートされていないことにかかっています。
これは、.NET 3.5 を使用した Linq to Entity では外部結合ができないことを意味しますか (DefaultIfEmpty が 4.0 に付属していることは理解していますが、現時点ではオプションではありません)。
Linq to EntityFramework を使用した簡潔な例を教えてください。
mysql - 左結合が速いか、内部結合が速いか?
だから...どちらが高速で(NULl値は問題ではありません)、インデックスが付けられています。
左結合の使用:
これが実際のクエリです これが..どちらも同じ結果を返します
php - 遅いクエリ - 複数の結合と大量のデータ
私はこれを行うことができるより良い方法があると確信しています。実行する大量のデータを含む 3 つのメイン テーブルがあります。records_main、sales、および予定です。それぞれに 20,000 近くのレコードがあります。
これらの 3 つのテーブルと、2 つほど大きくない他のいくつかのテーブルを結合する必要があります。
これには数秒かかりますが、最終的にロードされます。私が入れた最後の結合は、クエリを一緒に壊しているようです:
この後、制限が設定され、グループ化されます
これを改善するために私にできることはありますか?これをjqgridで使用していますが、それが役立つかどうかはわかりません
sql - プライマリ テーブルの現在の行の LEFT JOIN
JDBCについての質問です。次のタスクがあります。テーブル A の行を反復処理していますが、現在の行について、A の現在の行のコンテキストでテーブル B に対してクエリを実行したいと考えています。たとえば、次のようなクエリがある場合
次に、B.refId="A からの現在の行".ID であるすべての結果を取得したいと考えています。B から結果を選択するためのクエリを変更できないことに注意してください。
たとえば、テーブル A を次のようにします。
およびテーブル B:
たとえば、ID 2 のテーブル A の行でクエリを実行すると、「desc3」と「desc4」のみを取得したいとします。
このタスクはカーソルで解決できることをお勧めしますが、私はそれに慣れています。誰でも私にヒントを与えることができますか?
linq-to-sql - LinqToSql で LEFT OUTER JOIN を使用する場合の DateTime フィールドの処理方法
Employee と Absence の 2 つのテーブルがあります。左外部結合を実行して、すべての従業員と関連する欠勤を取得したいと考えています。LINQ2SQL では、以下を使用して LEFT OUTER JOIN を作成できます。
これは私が探しているものですが、休暇の開始日を表示したいと考えています。selectステートメントを次のように変更できます
しかし、DateTime は nullable ではないため、エラーが発生します。StartDate がない場合、または実際の Date がある場合は、空の文字列を表示するにはどうすればよいですか? x.StartDate.ToShortDateString() を使用してみましたが、null の場合は明らかにエラーがスローされます。
しかし、これもうまくいきません。助言がありますか?
sql - 右のテーブルが一致しなくても左のテーブルを表示する SQL 結合
次のように定義された2つのテーブルがあります。
すべての製品に対して正確に 1 行の結果を取得しようとしていNULL
ます。sDate < NOW()
eDate > NOW()
私は試した:
これに関する問題は、有効な割引のある製品のみが返されることです。割引なし、期限切れ・将来割引の商品は表示されません。
次に試しました:
これは、有効な割引のある製品と割引のない製品をリストするという私の望ましい結果に一歩近づきましたが、期限切れ/将来の割引が定義されている製品がまだありません.
常に 1 つの割引のみがアクティブであることの確認は PHP で行われるため、このステートメントに含める必要はありません。どんな助けでも大歓迎です!
sql - 左の結合が予想される場所でヌルを通過しない
次のようなクエリがあります (テーブル名を変更しました)。
私が期待しているのは、ユーザーまたはユーザーのマネージャーのルールがない場合は、デフォルトのルールを使用する必要があるということです。ただし、ユーザーにルールがある場合にのみ結果が得られます。
私はleft join
すべてを試みましたが、役に立たず、def
テーブルの選択ステートメントはすべてのデフォルトルールを取り戻します。
私は何を間違っていますか?
@user_id
変数です。
アップデート
スキーマの例
もしそうなら、私@user_id
は2
出力を期待するでしょう
しかし、 @user_idの場合3
、出力が期待されます