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

「サブクエリ」はあいまいなSQL用語であり、クエリに複数の `SELECT`ステートメントがある場合、またはデータ操作言語(DML)ステートメント(IE:DELETE、UPDATE、INSERT、MERGE)で使用される場合を説明するために使用されます。サブクエリのSELECTステートメントは、常に角かっこ/括弧内にあります。

18
結合とサブクエリ
私は昔ながらのMySQLユーザーであり、常にサブクエリJOINよりも優先しています。しかし、今日では誰もがサブクエリを使用しており、私はそれが嫌いです。理由はわかりません。 何か違いがあるかどうかを自分で判断するための理論的な知識が不足しています。サブクエリはと同じくらい良いので、JOIN心配する必要はありませんか?
837 sql  mysql  subquery  join 

16
MySQLエラー1093-FROM句で更新のターゲットテーブルを指定できません
story_categoryデータベースに破損したエントリを持つテーブルがあります。次のクエリは、破損したエントリを返します。 SELECT * FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 私は実行してそれらを削除しようとしました: DELETE FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); しかし、私は次のエラーを受け取ります: #1093-FROM句で更新のターゲットテーブル 'story_category'を指定できません どうすればこれを克服できますか?

2
SQL Serverのネストされたselectステートメント
次の方法でうまくいかないのはなぜですか? SELECT name FROM (SELECT name FROM agentinformation) SQLについての私の理解は間違っていると思います。これは、 SELECT name FROM agentinformation 内側のSELECTステートメントは、外側のSELECTステートメントがクエリする結果セットを作成しませんか?


6
サブクエリを使用してpostgresのテーブル行を更新する
postgres 8.4を使用して、私の目標は既存のテーブルを更新することです: CREATE TABLE public.dummy ( address_id SERIAL, addr1 character(40), addr2 character(40), city character(25), state character(2), zip character(5), customer boolean, supplier boolean, partner boolean ) WITH ( OIDS=FALSE ); 最初に、挿入ステートメントを使用してクエリをテストしました。 insert into address customer,supplier,partner SELECT case when cust.addr1 is not null then TRUE else FALSE end customer, case when suppl.addr1 …

4
CTE、サブクエリ、一時テーブル、またはテーブル変数の間にパフォーマンスの違いはありますか?
この素晴らしいではSOの質問、との違いCTEとはsub-queries議論されました。 私は具体的に尋ねたいと思います: 次のそれぞれがどのような状況でより効率的/高速ですか? CTE サブクエリ 一時テーブル テーブル変数 伝統的に、私はtemp tables開発で多くのことを使用しましたstored procedures-それらは絡み合った多くのサブクエリよりも読みやすいように見えるからです。 Non-recursive CTEsはデータのセットを非常にうまくカプセル化し、非常に読みやすいですが、常により良いパフォーマンスを発揮できると言える特定の状況はありますか?それとも、最も効率的なソリューションを見つけるために、常にさまざまなオプションをいじる必要があるのでしょうか? 編集 効率性の観点から、一時テーブルは関連するヒストグラム、つまり統計があるため、最初の選択肢として適していると最近言われました。

4
LATERALとPostgreSQLのサブクエリの違いは何ですか?
PostgresがLATERAL結合を行う機能を備えて以来、私は現在、全体のクエリに4分以上かかる多くの非効率的なサブクエリを使用してチームの複雑なデータダンプを行っているので、それについて調べてきました。 LATERAL結合が役立つ場合があることを理解していますが、Heap Analyticsからこのような記事を読んだ後でも、私はまだ完全には従いません。 LATERAL結合のユースケースは何ですか?LATERAL結合とサブクエリの違いは何ですか?

9
CTEとSubQueryの違いは?
この投稿から次の手順でROW_NUMBERを使用するにはどうすればよいですか? 回答には2つのバージョンがあり、1つはa sub-queryを使用し、もう1つはa を使用しCTEて同じ問題を解決します。 さてCTE (Common Table Expression)、「サブクエリ」よりも使用することの利点は何ですか(したがって、クエリが実際に行っていることをより読みやすくします) 使用しての唯一の利点CTEを超えるにはsub-select、私が実際にできることである名前を付けますsub-query。CTEが単純な(再帰的でない)CTEとして使用される場合、これら2つの間に他の違いはありますか?

10
MySQL-SELECT WHEREフィールドIN(サブクエリ)-非常に遅いのはなぜですか?
検査したいデータベースに重複がいくつかあるので、どの重複を確認するために私はこれを行いました: SELECT relevant_field FROM some_table GROUP BY relevant_field HAVING COUNT(*) > 1 このようにして、related_fieldが複数回出現するすべての行を取得します。このクエリの実行には数ミリ秒かかります。 ここで、重複のそれぞれを検査したかったので、上記のクエリで関連するフィールドを使用してsome_tableの各行をSELECTできると思ったので、次のようにしました。 SELECT * FROM some_table WHERE relevant_field IN ( SELECT relevant_field FROM some_table GROUP BY relevant_field HAVING COUNT(*) > 1 ) これは、何らかの理由で非常に遅いことがわかります(数分かかります)。それをそんなに遅くするためにここで正確に何が起こっているのですか?関連フィールドにはインデックスが付けられています。 最終的に、最初のクエリからビュー "temp_view"を作成してから、(SELECT relevant_field FROM some_table GROUP BY relevant_field HAVING COUNT(*) > 1)代わりに次のように2番目のクエリを作成しました。 SELECT * FROM …
133 mysql  subquery  where-in 

10
Laravel、サブクエリでこれを行う方法
Laravelでこのクエリを作成するにはどうすればよいですか。 SELECT `p`.`id`, `p`.`name`, `p`.`img`, `p`.`safe_name`, `p`.`sku`, `p`.`productstatusid` FROM `products` p WHERE `p`.`id` IN ( SELECT `product_id` FROM `product_category` WHERE `category_id` IN ('223', '15') ) AND `p`.`active`=1 結合を使用してこれを行うこともできますが、パフォーマンスのためにこの形式が必要です。

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つのクエリのパフォーマンスを測定するために使用するツールを提案していただければ幸いです。どうもありがとう!

6
複数の結果を持つサブクエリを使用して、テーブルに値を挿入するにはどうすればよいですか?
よろしくお願いします。 おそらくそれは解決するのは非常に簡単な問題です-しかし私はそれではありません.. ;-) SQL Serverに2つのテーブルがあります。 論文 価格 次に、特定のIDのセットを選択し、それらのIDを持ついくつかのエントリを価格表に挿入します。 例(間違っており、SQLが機能していない) INSERT INTO prices (group, id, price) VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50); SQLエラー->サブクエリに複数の値があります 手伝ってくれてありがとう
96 sql  insert  subquery 

2
FROMのサブクエリにはエイリアスが必要です
私はPostgreSQLで作成したこのクエリがあります。 [エラー]エラー: 3行目:FROM(SELECT DISTINCT(identifiant)AS AS made_only_recharge これはクエリ全体です: SELECT COUNT (made_only_recharge) AS made_only_recharge FROM ( SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER = '0130' EXCEPT SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER != '0130' ) Oracleで同様に機能するクエリが正常に機能しています。唯一の変更はEXCEPT、OracleのどこにあるかMINUSということですが、それをキーワードに置き換えました。私はPostgresを使い始めたばかりで、何を求めているのかわかりません。これを処理する正しい方法は何ですか?

3
PostgreSQL'NOTIN 'およびサブクエリ
私はこのクエリを実行しようとしています: SELECT mac, creation_date FROM logs WHERE logs_type_id=11 AND mac NOT IN (select consols.mac from consols) しかし、結果は得られません。私はそれをテストしました、そして私は構文に何か問題があることを知っています。MySQLでは、このようなクエリは完全に機能します。テーブルにmac存在しない行があることを確認するために行を追加しましたconsolsが、それでも結果は得られません。

1
グループごとに最大/最小<何でも>のレコードを取得する
どうやってするか? この質問の以前のタイトルは「ランクを使用した複雑なクエリでランクを使用(@Rank:= @Rank + 1)-機能しますか?」でしたが、ランクを使用したソリューションを探していましたが、Billが投稿したソリューションがはるかに良い。 元の質問: 定義された順序を指定して、各グループから最後のレコードを取得するクエリを作成しようとしています。 SET @Rank=0; select s.* from (select GroupId, max(Rank) AS MaxRank from (select GroupId, @Rank := @Rank + 1 AS Rank from Table order by OrderField ) as t group by GroupId) as t join ( select *, @Rank := @Rank + 1 AS …

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