問題タブ [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.
optimization - 2つの左結合を含むこのMySQLクエリを最適化するにはどうすればよいですか?
クエリが遅くなる理由がわかりません。つまり、チーム、プレーヤー、機器、メタデータの4つのテーブルになります。プレーヤーと機器のレコードにはチームへのFKがあり、チームはプレーヤーと機器の親になります。そして、これら3つのテーブルの行すべてに、作成日、作成者のユーザーIDなどを格納するメタデータのレコードがあります。
一度に取得したいのは、作成日の順に、特定のチームに属するプレーヤーと機器のレコードです。メタデータテーブルから開始し、metadata_id FKを介してプレーヤーテーブルと機器テーブルを左結合しますが、特定のチームのレコードのみを取得するようにSELECTをフィルター処理しようとすると、行が多い場合にクエリの速度が大幅に低下します。
クエリは次のとおりです。
速度の低下を実際に確認するには、テーブルごとに約10,000の行を追加する必要があります。私が理解していないのは、たとえば、「... AND player.team_id = 1」のように、一方のテーブルのwhere句だけでフィルタリングすると、本当に速い理由です。しかし、もう一方を追加して「.. 。AND(player.team_id = 1 OR Equipment.team_id = 1) "これには、はるかに長い時間がかかります。
テーブルとデータ型は次のとおりです。それほどではないが、大いに役立つと思われることの1つは、metadata_idとteam_idのプレーヤーと機器のキーを組み合わせたものであることに注意してください。
Please note that I realize I could easily speed this up by doing a UNION of two SELECTS on player and equipment for a given team id, but the ORM I'm using does not natively support UNION's and so I'd much rather try and see if I can optimize this query instead. Also I'm just plain curious.
mysql - MySQLの複雑なJOINの問題-適切な結果を達成できない
Vehicles(Id、VIN)とImages(Id、VehicleId、Name、Default)の2つのテーブルがあります。テーブルに表示する車両のVINとそのデフォルトの画像を選択する必要があります。私が抱えている問題は、デフォルトの画像が設定されていない場合でも、表示する画像が存在する場合はそれを選択したいということです。画像が存在しない場合でも、車両情報も表示する必要があります。これが私がこれまでに持っているものです:
このステートメントは、デフォルトの画像がある車両を表示しますが、デフォルトが設定されていない場合は何も表示しません。何を変更する必要がありますか?
編集*
私の問題をよりよく説明するために、ここにいくつかのテストデータがあります:
車両2にはデフォルトがありませんが、表示する画像を選択してほしいです。また、車両3には画像がまったくありませんが、画像なしでテーブルに表示する必要があります。車両1は設定されているため、デフォルトの画像が表示されます。これで問題が解決することを願っています。
sql - SQLクエリ:2つの別々の行からの2つのフィールドの結合
次の2つのテーブルがあります。
FID 3 =名前、およびFID4=名前であることをかなり明確にする必要があります。
これらの2つのテーブルを結合したいので、次のようになります。
または...あるいは...
SQLの達人はいますか?
これは私がこれまでに持っているものです:
しかし、それは私にこれを与えます:
誰?
mysql - MySQLの複雑なクエリで適切な結果が得られない
Vehicles(Id、VIN)とImages(Id、VehicleId、Name、Default)の2つのテーブルがあります。テーブルに表示する車両のVINとそのデフォルトの画像を選択する必要があります。私が抱えている問題は、デフォルトの画像が設定されていない場合でも、表示する画像が存在する場合はそれを選択したいということです。画像が存在しない場合でも、車両情報も表示する必要があります。これが私がこれまでに持っているものです:
このステートメントは、デフォルトの画像がある車両を表示しますが、デフォルトが設定されていない場合は何も表示しません。
私の問題をよりよく説明するために、ここにいくつかのテストデータがあります:
車両2にはデフォルトがありませんが、表示する画像を選択してほしいです。また、車両3には画像がまったくありませんが、画像なしでテーブルに表示する必要があります。車両1は設定されているため、デフォルトの画像が表示されます。これで問題が解決することを願っています。
sql - SubSonic2.2左結合エラー
私はこれが答えられたかもしれないことを知っていますが、左結合(亜音速への左内部結合)を行おうとすると、SubSonic2.2はSQLプロバイダーでエラーを引き起こします
次のようなSQlを作成する代わりに
それは作成します:
無効なSQLコードとしてこのエラーが発生します。
回避策はありますか?私はあなたがもうそれをまったくサポートしていないと思いますか?
php - MySQL作成ビューの問題、
ビューをテーブルとして使用して、3つのテーブルのデータを結合しています。
ただし、2つの問題が発生しています。
- forum_categoriesから1つのレコードのみが引き出され、リンクされます
- forum_answer.qtitleをforum_question.topicに関連付けることができません
お知らせ下さい :)
ありがとう。
sql - 右から数行だけのSQLLEFT外部結合?
2つのテーブルがTABLE_A
ありTABLE_B
、結合された列を従業員番号として持っていますEMPNO
。
通常の左アウター結合をしたい。ただし、TABLE_B
ソフト削除された特定のレコード(status='D'
)があるので、これらを含めたいと思います。明確にするために、TABLE_B
アクティブなレコード(status = null / a / anything)と削除されたレコードがある可能性があります。この場合、結果にその従業員を含めたくありません。ただし、削除された従業員のレコードのみTABLE_B
が含まれている場合は、その従業員を結果に含めたいと思います。要件を明確にしたいと思います。(私は長いqrsltのようなことをして、欲しいものを手に入れることができましたが、結合構文を使用してこれを行うためのより最適化された方法が必要だと思います)。(参加しなくても)提案をいただければ幸いです。彼の新しさは、望ましい結果なしに次のクエリを試行しています。
どんな助けにも感謝します。
php - 3 つのテーブルと可変テーブル名を含む複雑な SQL クエリ
データをプルする必要がある2つの異なるテーブルがあります
次の列があります
次のような変数名を持つ別のテーブル
次の列があります。
例えば:
最後に、次の POST データが提供されます
私がしなければならないことは次のとおりです。 POST データの領域にあるブログの名前を取得します。より簡潔に言うと、同じテーブルoption_value
のを選択する必要があり、テーブル名は のリストから(テーブル から) 作成され、最後に「_options」が追加されます。option_name 'blog_name'
option_name='state'
option_value="$_POST['state']'
blog_id
blogs
神よ、私がやろうとしていることが人間の口で言えるかどうかさえわかりません。
とにかく、私はstackoverflowがどこにいても尋ねる場所だと思います。
あなたのために何かを明確にすることができるかどうか教えてください、私は試します.
ところで、これは私が Wordpress MU を使用しており、さまざまなブログの動的に作成されたテーブルにいくつかの追加設定を行うことを選択したためです。
mysql - ある種の結合を使用したMySQLクエリ?わからない
誰かがmySQLを学ぶための良い本も推薦できれば、それは素晴らしいことです:)。
私は2つのテーブル、タグ、codes_tagsを持っています
私がやろうとしているのは、「tags」から名前を選択し、「codes_tags」にそのtag_idがいくつあるかを選択し、その数で並べ替えることです。そのtag_idのcodes_tagsにレコードがない場合、「count」は0またはNULL(できれば0)に等しくなければなりません。
これは私がこれまでに来た中で最も近いものです:
私が望んでいることを実行しているようですが、30を返す必要があるのに4行しか返していません。
私はここで何が間違っているのですか?ありがとう。
nhibernate - NHibernate 2.1: エイリアスを使用したサブクエリでの LEFT JOIN (ICriteria)
私は基本的に、NHibernate ICriteria インターフェイスを使用してこのクエリを作成しようとしています。
SomeTable 1:n AnotherTable
SomeTableには列があります: PrimaryKey、NonAggregateColumn
AnotherTableには列があります: PrimaryKey、ForeignKey、AnotherNonAggregate、YetAnotherNonAggregate
SQL はテーブルを 2 回スキャンする必要があるため (集計ごとに 1 つの射影サブクエリ)、射影サブクエリの使用があまり効率的でないことは明らかです。
複数の GROUP BY を使用することも効率的ではありません。
これに対する解決策はありますか?これまでのところ、生の SQL を使用することに頼ってきましたが、これは複雑なレポートでは扱いにくくなっています。