問題タブ [union-all]
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.
php - SQL パート 2 での類似テーブルのマージ
前回はコラムを投稿したくなかったので気が進まなかったと思いますが、私はこれを解決したいと思っているので、より良い判断を脇に置き、それを明らかにします.
OK、2 つの同様のテーブルがあり、MySQL と PHP を使用してテーブルを生成しています。これまでのところ、3つのテーブルがあります:
達成する必要がある最初のステップは、apn_1/apn1 を介してグリニッジをリバプールにリンクすることです。同じレコードが両方にあるとは限らず、重複している場合もあります。このテーブルを作成するために使用している php は、UNION ALL の周りで構文エラーをスローしています。
何が問題なのか誰にもわかりますか?
その後、結果のテーブルを cust_index/cust_index_ 経由で cpe_cust_index にリンクする必要があるため、理想的にはこれらのセルをマージする必要があると思います。これらのセルがグリニッジとリバプールに存在する場合、それらは常に同じになります。
前もって感謝します!
join - 水平 UNION ALL
2 つのテーブルがあり、それぞれから 1 つの列を選択する必要があります。これは、単一のクエリで実行する必要があります。幸いなことに、2 つの列は正しい順序で並べられており、どちらにも同じ数の行が含まれています。これで、ROWID で 2 つのテーブルを JOIN できることがわかりましたが、その比較を行う必要があるため時間がかかります。私の場合は必要ありません...同じ長さの2つの列を連結するには、水平のUNION ALLのようなものが必要です。
SQLite 3 でそのようなことは可能ですか?
ありがとう。
表1:
表 2:
必要な選択出力
クエリ:
私のテストアプリでは、これに約 0.75 秒かかります。2 つの別々の SELECT を実行し、プログラムの後半で出力を結合すると、約 0.4 秒かかりますが、あまり便利ではありません。最速の方法 (~0.23 秒) は、1 つのテーブルに両方の列を含めることですが、同じタイムスタンプを共有する TABLE2 の複数のバージョンがあるため、無駄です。
sql-server - SQL 2000 UNION ALL がクエリの最適化を台無しにする
通常の実行に 1 秒もかからないストアド プロシージャがあります。ユーザーはそのクエリで別のテーブルのデータを求めていたので、そのデータを UNION ALL と、新しいテーブルに欠けていたダミー列の束とマージしました。
テストでは問題なく動作しましたが、SQL 2000 Server に展開すると、タイムアウトが発生し始めました。古いクエリは 1 秒未満で実行され、2 つの新しいクエリは両方とも 1 秒未満で実行されますが、UNION ALL を使用してそれらを組み合わせると、クエリがタイムアウトします。
クエリがどのように見えるかについての一般的な考え方は次のとおりです。実際のクエリには約 20 個の入力パラメーターがあり、約 30 または 40 列が返されますが、基本的な考え方は次のとおりです。
上記の例では、@Criteria1 は null ではないため、パート 1 と 2 は 0 行を返し、パート 3 は 3 行のみを返します。しかし、パート 1 と 2 をコメントアウトすると、すぐに終了します。それらをそのままにしておくと、タイムアウトになります。
このような状況で、SQL Server が実行計画を台無しにしないようにするにはどうすればよいでしょうか?
mysql - UNIONクエリへのDISTINCTの追加
これから明確なtitle.idを取得するにはどうすればよいですか?
クエリにはまだまだありますが、これで十分です。
mysql - 複数のテーブルからデータを収集するためのMySQLLOOP
私は周りを見回しましたが、私のニーズを満たす解決策を見つけることができないようですので、あなたが助けてくれることを願っています。(私はMySQLに少し慣れていませんが、SQL ServerとOracleの経験が豊富です。)
いくつかのテーブルを持つデータベースがあります。
最初のテーブルは、基本情報を格納する定義テーブルであり、cp_defと呼ばれます。
次に、cp_defテーブルのレコードごとに、対応するcp_ [cid]テーブルがあります([cid]はcp_defテーブルのcid値です)。例:
すべてのcp_[cid]テーブルのすべてのレコードのコードとdate_expired列の値を出力するために(シェルスクリプトとcronジョブの一部として)動的クエリを毎日実行する必要があります。ここで、date_issued値は前日の日付です。
クエリが機能しています(以下を参照)。ただし、新しいcp_ [CID]テーブルを追加するたびに、クエリの最後に別のUNIONALLステートメントを手動で追加する必要があります。
私の最終的な目標は、実行時に上記のクエリをプログラムで生成することです。これにより、新しいcp_ [CID]テーブルがデータベースに追加されるたびに、手動で介入する必要がなくなります。
ビューを使ってみました。ただし、テーブルを追加するには、新しいテーブルを考慮して、ビューを手動で変更する必要があるように見えました。
各cp_[CID]テーブルがcp_defテーブル(およびINFORMATION_SCHEMAテーブル)にリストされていることを考えると、動的クエリを構築するために何らかのループを実行できると考えていましたが、それを完全には理解していません。これを短くするために、動的クエリを作成するためにcp_defテーブルをループする試みの失敗を投稿しないようにします。
そのようなクエリを作成するための正しい方向に私を向けるためにあなたが提供できるどんな援助も大いにありがたいです。何か見落としていた場合は、お詫び申し上げます。私は、探しているものをさまざまなフレーズで正確に検索しようとしましたが、役に立ちませんでした。
sql - これはよく文書化されたパターンですか?
私は、以下がアプリケーションの待ち時間を短縮するための十分に文書化されたパターン (またはそのことについてはアンチパターン) であるかどうかを見つけようとしています。私はこの手法を試してみましたが、これによりレイテンシが 20% 短縮されたように見えます。知っておくべき副作用があるかどうか知りたい
環境:
データベースに対して複数の SELECT 呼び出しを行うメソッド/関数/手順があり、それを最適化する必要があります。
メソッドの流れは次のとおりです。
解決策 : Union ALL を使用してデータベースを 1 回呼び出す
sql-server - UNIONと組み合わせた3つのSELECTのうち2つによって返された行の数
この投稿にタイトルを付けるのに苦労しています。
どうすれば次のことを達成できますか?
結果は次のようになります。
助けてください; SOFコミュニティに感謝します。
sql-server-2008 - SQL Server:一時テーブルを使用せずにSELECTステートメントで2つのテーブルをUNIONすることは可能ですか?
クエリに基づいて3つの変数を設定するストアドプロシージャを作成していMAX
ますが、それらの値を返す必要があります。一時テーブルを使用せずにこれを実行しようとしていますが、次のエラーが発生しますIncorrect styntax near ')'
私も試しました
エラーが発生しますCannot perform an aggregate function on an expression containing an aggregate or a subquery.
また、変数をバイパスしてUNION
、サブクエリでを使用してみました...
これはまたIncorrect syntax near ')'
何か考えや提案はありますか?一時テーブルは私の唯一のオプションですか?
sql - 大きなクエリがありますが、これをデバッグするにはどうすればよいですか?
したがって、次のエラーメッセージが表示されます。
問題のクエリは、すべてUNION ALLで接続された12個の小さなクエリで構成される大きなクエリであり、各小さなクエリには2つの内部結合ステートメントがあります。だから、次のようなもの:
table2とtable3は各クエリで同じテーブルであり、table2とtable3のフィールドも同じだと思います。
簡単な質問(私はまだこれに少し慣れていません):
タイプとしての「リード」はどういう意味ですか?ASに先行する他のステートメントとは異なり、これはtable.somethingのように記述されていません。
クイック編集の質問:( '2'、 '3'、 '4')のtable2.groupidはどういう意味ですか?
小さなクエリを1つずつチェックしました。それぞれが機能し、結果を返しますが、何らかの理由で結果は常に空になります(ただし、一部のPHPコードがこのクエリを生成したため、ログインしているユーザーに依存する場合としない場合があります)。
結果自体に関しては、それらのほとんどは次のようになります(ただし、水平に配置されています)。
結果の違いは2つあります。1)ほとんどの結果には同じフィールド名が含まれていますが、かなりの数の結果のフィールド長が異なります。文字が変化する(80)と言う人もいれば、文字が変化する(100)と言う人もいるように、これが実際にフィールドの長さでない場合は修正してください。2)2つのクエリには異なるフィールドが含まれていますが、idフィールドのみが異なります。これは、「asid」の部分がないことが原因である可能性があります。
UNION ALLの要件が何であるかはよくわかりませんが、私が思うに、すべてのフィールドが同じである場合にのみ機能することを意味しますが、そのファンキーな番号(括弧内の番号)が変更された場合は、同じ名前のフィールドでも異なると見なされますか?
また、奇妙なことに、一部のクエリがまったく同じフィールドを同じフィールド長で返したため、それらのクエリのみをUNION ALLしようとしましたが、運が悪かったため、UNIONで構文エラーが発生しました。
私が言及しなければならないもう1つの重要なことは、DBは以前はMySQLでしたが、PostGreSQLに変更したため、このバグは変更の結果である可能性があります(つまり、MySQLでは機能するがPostGresでは機能しないコード)。
御時間ありがとうございます。
mysql - 出力データがUnionAllクエリの列に対応していない理由
これが出力の一部です
array(7){["type"] => string(16) "new post comment" ["book_id"] => string(1) "1" ["name"] => string(9) "whatever" [ "author_id"] => string(4) "test" ["content"] => string(19) "2011-07-16 03:20:01" ["create_time"] => string(1) "3" ["id"] => string(1) "1"}
そして、これは私のクエリの一部です
示されている結果として、「author_id」に対応するデータは「content」に対応し、「content」は「create_time」に対応する必要があります。私のクエリの何が問題になっていますか?