問題タブ [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 - IDのSQLite自己結合のバグ?
IDに基づいて行のペアワイズの組み合わせを生成しようとしています。SQLiteのバージョンは3.5.9です。テーブルの内容は次のとおりです。
テーブルスキーマは次のとおりです。
次に、IDに自己結合があります。
これは明らかに私が望んでいることではありません。ここで、t2とt1の順序を変更すると、正しい結果が得られます。
ここで、別の実験として、行ID以外の数値列を組み合わせてみました。一方、どちらの場合も正しい結果が得られます。
私は誰かがここで何が起こっているのかについて洞察を与えることができることを望んでいます。私が理解している限り、それはSQLiteのバグか、SQLの微妙な側面のどちらかです。
ありがとう、
mysql - MySQLの参加の問題
次のクエリは、奇妙な結果を返します。
次のようなテーブル構造でこれをクエリしています。
(に関連するデータのみStatistics.StatisticID = 8
)
投票
ビュー
コメントコメント
このクエリを実行すると、次の結果セットが得られます。
私は5がどこから来ているのか(コメントの数)を知っています。これは、コメントステートメントを削除すると機能します。これは私の手の届かないところにあるので、誰かがこれをデバッグできますか(私はSQLに比較的慣れていません)。
ありがとう、ロス
mysql - MySQL で「ON」の代わりに「USING」を使用することのデメリットはありますか?
MySQL の 2 つのスニペット:
対
両方のテーブルにid
フィールドがある場合、2 番目のバージョンを使用することに不利な点はありますか。それは単なる怠惰ではありません。USING を使用したバージョンの方がはるかに明確に思えます。
(エイリアシングについては言及しないでください。ある条件付き構造を他の条件付き構造より優先する理由があるかどうか知りたいです)
.net - .NET DataSet のテーブルを結合して DataGridView に表示する
.NET の DataSet に 2 つのテーブルがあります。ID列でそれらを結合したい。次に、DataGridView に最初のテーブルから 2 つの列を表示し、2 番目のテーブルから 1 つの列を表示します。
簡単に言えば、2 つのテーブルの関係は 1 対 1 です。
それはできますか?
mysql - 結合と場所の条件
私は次の(短縮されたクエリ)を持っています:
今、どちらもFlagCount = 0
節でCOUNT(Flags.FlagType)
働いていません。WHERE
a を使用することを考えましたSET
が、それをクエリに追加する方法がわかりません。何か案は?
ありがとう、
mysql - MYSQL - このコードで STRAIGHT_JOIN は何をしますか?
このコードで何STRAIGHT_JOIN
をしますか?
mysql - MySQL マルチテーブル結合
次の MySQL ステートメントを変更して、3 番目のテーブルからの情報を含める必要があります... しかし、私は結合が苦手です。
projects.project_name
とのマッチングによるsearches.project_id
取得も含める必要がありますprojects.id
。
mysql - テーブルに参加するのに助けが必要
テーブルをCSVにエクスポートする関数があり、クエリでエクスポートするフィールドを設定します。
クエリは次のとおりです。
フィールドvenue_idは、別のテーブル(venues)で参照される会場のIDです。
したがって、volunteers_2009.venue_id =venues.id
CSVファイルを開くと、理解できるvenue_idが表示されますが、CSVファイル内に会場の名前(venues.venue_name)を入力するようにクエリを変更する必要があります。
どんな助けでも大歓迎です。
mysql - MySQL で重複する BLOB 行を効果的に見つけるにはどうすればよいですか?
私はフォームのテーブルを持っています
約 160,000 行あり、blob 列には約 2GB のデータがあります (blob あたり平均 14kb)。別のテーブルには、このテーブルへの外部キーがあります。
3000 くらいのブロブが同一です。だから私が欲しいのは、重複を削除できる再マップテーブルを提供するクエリです。
単純なアプローチでは、30 ~ 40k 行で約 1 時間かかりました。
他の理由で、ブロブのサイズを含むテーブルをたまたま持っています。
fk と sz の両方のインデックスを作成することで、50k 行で約 24 秒かかるダイレクト クエリが実行されます。
ただし、これは da (データ テーブル) に対して完全なテーブル スキャンを実行しています。ヒット率がかなり低くなければならないことを考えると、インデックス スキャンの方が優れていると思います。それを念頭に置いて、データの 3 番目のコピーを 5 番目の結合として追加し、約 3 秒を失いました。
質問はOKです:私は2番目の選択よりもはるかに良くなるでしょうか?もしそうなら、どのように?
少しの結果は次のとおりです。キー列が非常に頻繁に使用されるが、残りはめったに使用されないテーブルがある場合、そのテーブルの別の結合を追加して、インデックススキャンとフルスキャンを促進する方が良いでしょうか?テーブルスキャン?
#mysql@irc.freenode.net の Xgc は、サイズのようなユーティリティ テーブルを追加し、一意の制約をオンにすると非常にfk
役立つ可能性があると指摘しています。トリガーのいくつかの楽しみとそうでないものは、最新の状態に保つのに悪くないかもしれません.
sql - SQL選択結合:すべての列に「prefix.*」という接頭辞を付けることは可能ですか?
これがSQLで可能かどうか疑問に思っています。2 つのテーブル A と B があり、テーブル A で選択を行い、テーブル B で結合するとします。
テーブル A に列 'a_id'、'name'、および 'some_id' があり、テーブル B に 'b_id'、'name'、および 'some_id' がある場合、クエリは列 'a_id'、'name'、'some_id' を返します。 '、'b_id'、'name'、'some_id'. すべての列を個別にリストせずに、テーブル B の列名にプレフィックスを付ける方法はありますか? これに相当するもの:
ただし、前述のように、すべての列をリストすることなく、次のようになります。
基本的には、「b.* によって返されるすべての列の前に 'something' を付ける」ということです。これは可能ですか、それとも運が悪いですか?
編集
使用しないSELECT *
などのアドバイスは有効なアドバイスですが、私のコンテキストには関係ありません。そのため、当面の問題に固執してください-接頭辞(SQLクエリで指定された定数)を結合のテーブル?
私の最終的な目標はSELECT *
、結合を使用して 2 つのテーブルで a を実行し、結果セットで取得した列の名前から、どの列がテーブル A からのもので、どの列がテーブル B からのものかを判断できるようにすることです。繰り返しますが、列を個別にリストする必要はありませんSELECT *
。.