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

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

4
MySQLクエリのIF条件でカウントする
2つのテーブルがあります。1つはニュース用で、もう1つはコメント用で、ステータスが承認済みに設定されているコメントの数を取得したいと思います。 SELECT ccc_news . *, count(if(ccc_news_comments.id = 'approved', ccc_news_comments.id, 0)) AS comments FROM ccc_news LEFT JOIN ccc_news_comments ON ccc_news_comments.news_id = ccc_news.news_id WHERE `ccc_news`.`category` = 'news_layer2' AND `ccc_news`.`status` = 'Active' GROUP BY ccc_news.news_id ORDER BY ccc_news.set_order ASC LIMIT 20 ただし、このクエリの問題は、そのニュースに対応するコメントが存在するかどうかに関係なく、コメント列に対してフェッチされる最小値が1であることです。 どんな助けも高く評価されます。

8
JPAの熱心なフェッチが参加しない
JPAのフェッチ戦略は正確には何を制御しますか?熱心なものと怠惰なものの違いを検出できません。どちらの場合も、JPA / Hibernateは多対1の関係を自動的に結合しません。 例:人は単一の住所を持っています。アドレスは多くの人に属することができます。JPAアノテーション付きエンティティクラスは次のようになります。 @Entity public class Person { @Id public Integer id; public String name; @ManyToOne(fetch=FetchType.LAZY or EAGER) public Address address; } @Entity public class Address { @Id public Integer id; public String name; } JPAクエリを使用する場合: select p from Person p where ... JPA / Hibernateは、Personテーブルから選択する1つのSQLクエリを生成し、次に各個人の個別のアドレスクエリを生成します。 select ... from …
112 java  hibernate  jpa  join 

8
SQL結合とSQLサブクエリ(パフォーマンス)の比較
私がこのような結合クエリを持っているかどうか知りたい- Select E.Id,E.Name from Employee E join Dept D on E.DeptId=D.Id そして、このようなサブクエリ - Select E.Id,E.Name from Employee Where DeptId in (Select Id from Dept) パフォーマンスを検討するとき、2つのクエリのどちらが高速で、なぜですか? また、どちらか一方を優先する必要がある時期はありますか? これが簡単すぎて前に尋ねられたら申し訳ありませんが、私はそれについて混乱しています。また、2つのクエリのパフォーマンスを測定するために使用するツールを提案していただければ幸いです。どうもありがとう!

5
同じテーブルに2回参加する最良の方法は何ですか?
これは少し複雑ですが、2つのテーブルがあります。構造が次のようなものであるとしましょう: *Table1* ID PhoneNumber1 PhoneNumber2 *Table2* PhoneNumber SomeOtherField テーブルは、Table1.PhoneNumber1-> Table2.PhoneNumber、またはTable1.PhoneNumber2-> Table2.PhoneNumberに基づいて結合できます。 次に、PhoneNumber1、PhoneNumber1、PhoneNumber2に対応するSomeOtherField、およびPhoneNumber2に対応するSomeOtherFieldを含む結果セットを取得します。 これを行うには2つの方法を考えました。テーブルを2回結合するか、ON句でORを使用して1回結合するかのどちらかです。 方法1: SELECT t1.PhoneNumber1, t1.PhoneNumber2, t2.SomeOtherFieldForPhone1, t3.someOtherFieldForPhone2 FROM Table1 t1 INNER JOIN Table2 t2 ON t2.PhoneNumber = t1.PhoneNumber1 INNER JOIN Table2 t3 ON t3.PhoneNumber = t1.PhoneNumber2 これは動作するようです。 方法2: なんとなくこのようなクエリを作成するには- SELECT ... FROM Table1 INNER JOIN Table2 ON Table1.PhoneNumber1 …
108 sql  join 

16
SQL ANSI-92標準がANSI-89よりも適切に採用されないのはなぜですか?
私が働いたすべての会社で、人々はまだANSI-89標準でSQLクエリを書いていることがわかりました。 select a.id, b.id, b.address_1 from person a, address b where a.id = b.id ANSI-92標準ではなく: select a.id, b.id, b.address_1 from person a inner join address b on a.id = b.id このような非常に単純なクエリの場合、読みやすさに大きな違いはありませんが、大規模なクエリの場合、結合条件をグループ化してテーブルを一覧表示すると、結合のどこに問題があるかを簡単に確認できることがわかります。すべてのフィルタリングをWHERE句で維持しましょう。言うまでもなく、外部結合はOracleの(+)構文よりも直感的です。 ANSI-92を人々に伝道しようとすると、ANSI-89よりもANSI-92を使用した方がパフォーマンスに具体的なメリットはありますか?私は自分で試してみますが、ここにあるOracleのセットアップではEXPLAIN PLANを使用できません-人々がコードを最適化しようとしないでください。
107 sql  join  ansi-sql  ansi-92 



3
has_many:throughを使用したRailsのネストされたフォーム、結合モデルの属性を編集する方法は?
accepts_nested_attributes_forを使用する場合、結合モデルの属性をどのように編集しますか? 私は3つのモデルを持っています:リンカーによって結合されたトピックと記事 class Topic < ActiveRecord::Base has_many :linkers has_many :articles, :through => :linkers, :foreign_key => :article_id accepts_nested_attributes_for :articles end class Article < ActiveRecord::Base has_many :linkers has_many :topics, :through => :linkers, :foreign_key => :topic_id end class Linker < ActiveRecord::Base #this is the join model, has extra attributes like "relevance" belongs_to :topic …

3
MySQL 2つのフィールドでテーブルを結合する方法
dateとidフィールドを持つ2つのテーブルがあります。両方の分野で参加したい。私は試した JOIN t2 ON CONCAT(t1.id, t1.date)=CONCAT(t2.id, t2.date) それは機能しますが、非常に遅いです。これを行うより良い方法はありますか?
102 mysql  join 

8
MySQLは最新の行のみに参加しますか?
customer_id、電子メール、および参照を格納する表customerがあります。顧客に加えられた変更の履歴レコードを格納する追加のテーブルcustomer_dataがあります。つまり、変更があった場合、新しい行が挿入されます。 テーブルに顧客情報を表示するには、2つのテーブルを結合する必要がありますが、customer_dataからの最新の行のみをcustomerテーブルに結合する必要があります。 クエリがページ分割されるという点で少し複雑になるため、制限とオフセットがあります。 MySQLでこれを行うにはどうすればよいですか?DISTINCTをどこかに配置したいと思います... 当日のクエリは次のようになります SELECT *, CONCAT(title,' ',forename,' ',surname) AS name FROM customer c INNER JOIN customer_data d on c.customer_id=d.customer_id WHERE name LIKE '%Smith%' LIMIT 10, 20 さらに、このようにCONCATをLIKEと併用できると思いますか? (INNER JOINは、使用するJOINのタイプが間違っている可能性があることを理解しています。実際には、さまざまなJOINの違いは何なのかわかりません。これから調べます!)
101 mysql  sql  join 


3
SQLite-異なるデータベースのテーブルをどのように結合しますか?
SQLiteデータベースを使用するアプリケーションがあり、すべてが正常に機能します。現在、2番目のSQLiteデータベースを必要とする新しい機能を追加しているところですが、さまざまなデータベースのテーブルを結合する方法を理解するのに苦労しています。 誰かがこれを手伝ってくれるなら、私は本当に感謝しています! 編集:承認された回答で述べられているように、データベースを接続するときに自分の言語に適応できるケースの例については、この質問を参照してください。
100 sql  database  sqlite  join 

3
なぜLINQ JOINはWHEREとリンクするよりもはるかに高速なのですか?
私は最近VS 2010にアップグレードし、LINQ to Datasetで遊んでいます。ASP.NET WebApplicationのHttpCacheにある承認用の厳密に型指定されたデータセットがあります。 だから私は、ユーザーが何かをすることを許可されているかどうかを確認する最も速い方法が実際に何であるか知りたいと思った。ここに私のデータモデルと、誰かが興味を持っている場合のその他の情報があります。 私は3つの方法をチェックしました: 直接データベース Where条件が "Join"のLINQクエリ-構文 結合を使用したLINQクエリ-構文 これらは、各関数を1000回呼び出した結果です。 1.反復: 4,2841519秒。 115,7796925秒。 2,024749秒 2.Iteration: 3,1954857秒 84,97047秒 1,5783397秒 3.反復: 2,7922143秒 97,8713267秒。 1,8432163秒 平均: データベース:3,4239506333秒。 場所:99,5404964秒。 参加:1,815435秒 なぜLINQの初心者が最も読みやすいように見えますが、Joinバージョンはwhere構文よりもはるかに高速であり、役に立たなくなります。または、クエリで何かを見逃しましたか? これがLINQクエリです。データベースをスキップします。 どこ: Public Function hasAccessDS_Where(ByVal accessRule As String) As Boolean Dim userID As Guid = DirectCast(Membership.GetUser.ProviderUserKey, Guid) Dim query = From …


5
Rでdata.framesをマージ/結合する最も速い方法は何ですか?
たとえば(ただし、最も代表的な例かどうかはわかりません): N <- 1e6 d1 <- data.frame(x=sample(N,N), y1=rnorm(N)) d2 <- data.frame(x=sample(N,N), y2=rnorm(N)) これは私がこれまでに得たものです: d <- merge(d1,d2) # 7.6 sec library(plyr) d <- join(d1,d2) # 2.9 sec library(data.table) dt1 <- data.table(d1, key="x") dt2 <- data.table(d2, key="x") d <- data.frame( dt1[dt2,list(x,y1,y2=dt2$y2)] ) # 4.9 sec library(sqldf) sqldf() sqldf("create index ix1 on d1(x)") …

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