タグ付けされた質問 「join」

JOINは、リレーショナルデータベースシステム内の2つ以上のリレーションに対する結合操作のための、リレーショナル代数における一般的な操作です。JOINは、この操作を実行するためのSQL言語のキーワードでもあります。

4
2012年にPandasがRのdata.tableマージよりもPythonでマージされたのはなぜですか?
私は最近、Python のパンダライブラリに出会いました。このベンチマークによると、非常に高速なメモリ内マージを実行します。R(分析用に選択した私の言語)のdata.tableパッケージよりもさらに高速です。 なぜpandasこれよりずっと速いのですdata.tableか?PythonがRより優れているという固有の速度の利点が原因ですか、それとも私が気付いていないトレードオフがありますか?andにdata.table頼らずに内部結合と外部結合を実行する方法はありますか?merge(X, Y, all=FALSE)merge(X, Y, all=TRUE) 以下は、さまざまなパッケージのベンチマークに使用されるRコードとPythonコードです。
160 python  r  join  data.table  pandas 

14
サブクエリと結合
次のようなサブクエリの代わりに内部結合を使用するために、別の会社から継承したアプリケーションの遅いセクションをリファクタリングしました。 WHERE id IN (SELECT id FROM ...) リファクタリングされたクエリは、約100倍速く実行されます。(〜50秒から〜0.3)改善が期待されていましたが、それがそれほど劇的だった理由を誰かが説明できますか?where句で使用される列にはすべてインデックスが付けられました。SQLはクエリをwhere句で行ごとに1回実行しますか? 更新 -結果の説明: 違いは「where id in()」クエリの2番目の部分にあります- 2 DEPENDENT SUBQUERY submission_tags ref st_tag_id st_tag_id 4 const 2966 Using where vs結合された1つのインデックス付き行: SIMPLE s eq_ref PRIMARY PRIMARY 4 newsladder_production.st.submission_id 1 Using index

4
MySQL:結合のタイプの簡単な内訳
MySQL結合のタイプの簡単な内訳をお願いします。私はこれらを知っていますが、残りは何を意味するのかわかりません。 コンマ区切り(正確にはこれは何の略ですか?):SELECT * FROM a, b WHERE b.id = a.beeId AND ... bに一致がない場合でも、aからの情報を表示します。 SELECT * FROM a LEFT OUTER JOIN b ON b.id = a.beeId WHERE ... 他の結合を見たことがありますが、それらがどのように違うのか、INNER/ OUTERとは何か、追加LEFTによって変更が行われることを知りたいです。 結合のしくみはすでに知っています。他の種類の結合があるかどうか、または同じ結果を得る方法が異なるかどうかだけを知りたいです。
157 mysql  join 

4
Oracleの「(+)」演算子
それらを文書化し、おそらくそれらを拡張する目的で、いくつかの古いSQLステートメントをチェックしています。 DBMSはOracleです 次のような文は理解できませんでした。 select ... from a,b where a.id=b.id(+) (+)演算子について混乱しており、どのフォーラムでも取得できませんでした(引用符内で+を検索しても機能しませんでした)。 とにかく、SQLDeveloperの 'Explain Plan'を使用して、と出力しましたHASH JOIN, RIGHT OUTER。 (+)クエリの最後で演算子を削除すると違いはありますか?データベースを(+)使用する前に、いくつかの条件を満たす必要がありますか(インデックスがあるなど)?? あなたが私に簡単な理解、または私がこれについて読むことができるいくつかの良いリンクを提供できれば、それは非常に役に立ちます。 ありがとう!
155 sql  oracle  join  outer-join 

4
IDを使用して複数のSQLテーブルを結合するにはどうすればよいですか?
結合したい4つの異なるテーブルがあります。テーブルは、次のような列で構成されています。 TableA - aID | nameA | dID TableB - bID | nameB | cID | aID TableC - cID | nameC | date TableD - dID | nameD テーブルAから始めて、bにはテーブルの主キーがあるため、bを使用してテーブルaとcを結合する方法を理解しました。TableAのTableDも結合できるようにしたい。以下は、最初にテーブルAとBを結合し、次にそれをCに結合するSQLステートメントです。 SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA ON TableB.aID= TableA.aID) INNER JOIN TableC ON(TableB.cID= Tablec.cID) WHERE (DATE(TableC.date)=date(now())) Dを含めるために別の結合を追加しようとすると、「TableD」が不明であるというエラーが表示されます。 …
141 mysql  sql  join 

9
JASE条件でCASEステートメントを使用できますか?
次の画像は、Microsoft SQL Server 2008 R2のシステムビューの一部です。画像から、sys.partitionsとsys.allocation_unitsの値の関係がに依存していることがわかりますsys.allocation_units.type。したがって、それらを結合するには、次のようなものを書きます。 SELECT * FROM sys.indexes i JOIN sys.partitions p ON i.index_id = p.index_id JOIN sys.allocation_units a ON CASE WHEN a.type IN (1, 3) THEN a.container_id = p.hobt_id WHEN a.type IN (2) THEN a.container_id = p.partition_id END しかし、上のコードは構文エラーを出します。それはCASE声明のせいだと思います。誰かが少し説明するのを手伝ってくれる? エラーメッセージを追加: メッセージ102、レベル15、状態1、行6「=」付近の構文が正しくありません。
141 sql  sql-server  join  case 

5
このクエリでページング(スキップ/テイク)機能を実装する
私はSQLでカスタムページングを実装する方法について少し理解しようとしています。たとえば、このような記事を読んでいます。 次のクエリがありますが、これは完全に機能します。しかし、私はこれでページングを実装したいと思います。 SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate from dbForumEntry group by PostId ) SubQueryAlias order by LastDate desc 何が欲しい フォーラムの投稿と関連エントリがあります。最近追加されたエントリを含む投稿を取得したいので、最近議論された投稿を選択できます。 ここで、「トップ10」の代わりに「最近アクティブなトップ10〜20の投稿」を取得できるようにしたいと考えています。 私は何を試しましたか 私はROW関数を記事の1つとして実装しようとしましたが、実際にはうまくいきませんでした。 それを実装する方法はありますか?

6
LEFT JOIN最初の行のみ
左結合の最初の行のみを取得することについて多くのスレッドを読みましたが、何らかの理由で、これは私にとっては機能しません。 これが私の構造です(もちろん簡略化されています) フィード id | title | content ---------------------- 1 | Feed 1 | ... アーティスト artist_id | artist_name ----------------------- 1 | Artist 1 2 | Artist 2 feeds_artists rel_id | artist_id | feed_id ---------------------------- 1 | 1 | 1 2 | 2 | 1 ... 今、私は記事を手に入れて最初のアーティストだけに参加したいのですが、私はこのようなことを考えました: SELECT * FROM …

4
パンダの結合の問題:列はオーバーラップするが、サフィックスが指定されていない
次の2つのデータフレームがあります。 df_a = mukey DI PI 0 100000 35 14 1 1000005 44 14 2 1000006 44 14 3 1000007 43 13 4 1000008 43 13 df_b = mukey niccdcd 0 190236 4 1 190237 6 2 190238 7 3 190239 4 4 190240 7 これらの2つのデータフレームを結合しようとすると: join_df = df_a.join(df_b,on='mukey',how='left') エラーが発生します: …
136 python  join  pandas 

2
同じテーブルの複数の列でのSQL結合
2つのサブクエリがありますが、同じテーブルの列を結合するのに問題があります。私は試した: SELECT * FROM (SELECT userid, listid FROM user_views_table WHERE date='2013-05-15' AND view_type='lists') a JOIN (SELECT sourceid, destinationid FROM actions_table WHERE date='2013-05-15' AND payloadtype='lists_user' AND actiontype='delete') b ON a.userid = b.sourceid ON a.listid = b.destinationid; クエリを終了するだけON a.userid = b.sourceidで機能するが、これらのテーブルを別の列に結合する方法もあるON a.listid = b.destinationid? 助けてくれてありがとう。
136 sql  join 

2
MySQLはwhere句と結合します
結合したい2つのテーブルがあります。 私は、categoryテーブルのすべてのカテゴリと、category_subscriptionsテーブルのユーザーがサブスクライブするすべてのカテゴリが必要です。 基本的にこれはこれまでの私のクエリです: SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id これは正常に機能しますが、クエリの最後にwhere句を追加すると、本質的に内部結合または等価結合になります。 SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id WHERE user_category_subscriptions.user_id = 1 1つのクエリのみを使用して、特定のユーザーがサブスクライブするすべてのカテゴリとすべてのカテゴリを取得するにはどうすればよいですか? category_idは、categoryテーブルとuser_category_subscriptionsの両方のキーです。user_category_subscriptionsテーブルにあるuser_id。 ありがとう
130 mysql  join  where-clause 


3
data.tablesのX [Y]結合が完全外部結合または左結合を許可しないのはなぜですか?
これは、data.table結合構文についての哲学的な質問です。data.tablesの用途はますます増えていますが、まだ学習中です... X[Y]data.tables の結合フォーマットは非常に簡潔で、便利で効率的ですが、私が知る限り、内部結合と右外部結合のみをサポートしています。左または完全な外部結合を取得するには、以下を使用する必要がありますmerge。 X[Y, nomatch = NA] -Yのすべての行-右外部結合(デフォルト) X[Y, nomatch = 0] -XとYの両方に一致する行のみ-内部結合 merge(X, Y, all = TRUE) -XとYの両方からのすべての行-完全外部結合 merge(X, Y, all.x = TRUE) -Xのすべての行-左外部結合 X[Y]結合フォーマットが4種類の結合すべてをサポートしていると便利だと思います。2種類の結合のみがサポートされる理由はありますか? 私にとって、nomatch = 0およびnomatch = NAパラメータの値は、実行されるアクションのための非常に直感的ではありません。merge構文を理解して覚える方が簡単です:all = TRUE、all.x = TRUEおよびall.y = TRUE。X[Y]操作はにmerge非常に似ているので、関数のパラメーターではなく結合matchのmerge構文を使用してみませんか?matchnomatch 4つの結合タイプのコード例を以下に示します。 # sample X and Y data.tables library(data.table) X <- data.table(t = 1:4, …
123 r  join  data.table 

4
MySQL 1つのクエリでの複数の結合?
次のクエリがあります。 SELECT dashboard_data.headline, dashboard_data.message, dashboard_messages.image_id FROM dashboard_data INNER JOIN dashboard_messages ON dashboard_message_id = dashboard_messages.id だから私はを使ってINNER JOINをつかんでいimage_idます。だから今、私はそのimage_idを取り、それをimages.filenameimagesテーブルから変換したいと思います。 それをクエリに追加するにはどうすればよいですか?
121 mysql  sql  join 

2
boost :: algorithm :: joinの良い例
私は最近boost :: algorithm :: joinを使用したかったのですが、使用例を見つけることができず、この1つの関数を使用するためだけにBoost Rangeライブラリの学習に多くの時間を費やしたくありませんでした。 文字列のコンテナで結合を使用する方法の良い例を誰かが提供できますか?ありがとう。
116 c++  string  boost  join 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.