問題タブ [recursive-query]

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.

0 投票する
1 に答える
3967 参照

sql - 再帰的な CTE クエリをインデックスに適したクエリに変換する必要がある

ニーズを満たすために再帰 CTE クエリを作成するという大変な作業を行った後、インデックス付きビューでは機能しないため、使用できないことに気付きました。したがって、以下の CTE を置き換えるために何か他のものが必要です。(はい、インデックスのないビューで CTE を使用できますが、それは私には遅すぎます)。

要求事項:

  1. 私の最終的な目標は、自己更新のインデックス付きビューを作成することです (ビューである必要はありませんが、似たようなものです)。つまり、ビューが結合するテーブルのいずれかでデータが変更された場合、ビューは自体を更新します。

  2. ビューは非常に高速である必要があり、データは頻繁に変更されないため、インデックスを作成する必要があります。残念ながら、CTE を使用したインデックスなしのビューの実行には 3 ~ 5 秒かかり、私のニーズには長すぎます。クエリをミリ秒単位で実行する必要があります。再帰テーブルには数十万のレコードがあります。

私の調査によると、これらすべての要件を満たす最善の解決策はインデックス付きビューですが、私はどのような解決策も受け入れます。

CTE は、私の他の投稿への回答にあります。またはここに再びあります:

0 投票する
2 に答える
1265 参照

jquery - PHP - JQuery で再帰的な json 配列解析を作成する

これが実際に実行できるかどうかはわかりません-おそらく実行できますが、私にはできません。次のようなphp再帰配列関数があります。

次のようなページで始まります。

この機能は私にとってはうまく機能します。しかし、それは「プレーンな」phpです。私がやりたいのはecho、結果を出力するのではなく、json 配列を作成することです。次に、JQuery を使用して結果を解析します。私の理由は$.getJSON('etc...')、「中央」DB でクロスドメイン機能を使用しているためです。Iframe を使用して、「中央」ドメインに「テンプレート」ページを作成することはできますが、私はしたくありません。(私はフレーム/ Iframeが嫌いです)

提案/コメントはありますか?

0 投票する
2 に答える
119 参照

java - なぜこれが新しい文字列を返さないのですか?

文字列を逆にする再帰メソッドがあります(HW割り当て、再帰的である必要があります)。私はそれをしました....しかし、それは最初のパスの後に文字列の値を返すだけです。各パスの後に出力を分析することにより、それが正しく機能していることがわかります。ここに私のコードがあり、その下に出力が表示されます。

出力:

0 投票する
1 に答える
2496 参照

sql - 同じSQLServerデータベース内のクエリ(ビュー)とテーブルを同期する必要があります

複数のテーブルに結合する再帰CTEクエリとテーブルを同期させる必要があります。CTEは、実行されるたびに異なる結果を返す場合があります(結合するテーブルに変更が加えられた場合)。CTEは低速であり、トリガーを起動させるクエリはトリガーが起動するまで返されないため、トリガーを実行させる余裕はありません(単一のレコードを単純に更新する必要はありません)。トリガーが終了するのを待っているため、15秒)。SSMSでソリューションを実装する方法の詳細もいいでしょうが、必須ではありません。

1つの解決策は、スケジュールされたジョブでCTEを実行し、その結果をテーブルとマージすることです。スケジュールされたジョブは数秒ごとに実行できるため、テーブルは可能な限り最新の状態になります。しかし、SQL Server 2005でスケジュールされたジョブを作成する方法や、CTEクエリの結果をテーブルとマージする方法がわかりません。

私の質問を言い換えると:

CTEを使用して、テーブルを可能な限りリアルタイムに近い状態に保つにはどうすればよいですか?

0 投票する
1 に答える
285 参照

javascript - javascriptの問題、単純な再帰関数

私はjavascriptとその構文にあまり精通していませんが、この関数を作成しました。再帰的に呼び出すとエラーが発生し続けます。

私が得るエラーは次のとおりです。

したがって、変数formidがrecursiv呼び出しに渡されていないようです。誰もが理由を知っていますか?

ありがとう!

マエニー

0 投票する
2 に答える
418 参照

postgresql - 親の後に表示される子の順序を維持する方法

replyid の予期される順序: 55、57、58、59、60、56 -- 1 番目の親の返信全体とそのすべての子が 2 番目の親の返信の前に表示されるようにします。次の SQL クエリは間違った順序の結果を返します。

ただし、「ORDER BYパス」を最後に追加するだけでこれが修正されますが、昇順のみです

それでは、代わりに「ORDER BY path DESC」を追加して、DESCENDING を試してみましょう。結果は次のとおりです。

これで、1 番目の親の返信に対する子が 2 番目の親の返信の子であるかのように表示されます。

私の質問は次のとおりです: 子または深さ > 0 の結果が常に対応する親の後に表示され、他の親アイテムの後に表示されるように、結果を並べ替えるにはどうすればよいですか?

私が見たい結果:

Freenode の #postgresql にある RhodiumToad のおかげで、驚くほど機能する次の PHP および SQL クエリを思いつくことができました!

0 投票する
3 に答える
1413 参照

sql - 再帰への対処(オラクル)

クライアント(Web取引)のビジネスロジックを実行しようとして問題が発生しています。

私のクライアントには、次のようなテーブル(簡略化)があります。

ここで、アプリは最大のトレードチェーンを表示する必要があります。トレードチェーンは、提供された製品と要求された製品内の関係として定義されます。

これはトレードチェーンです:

<34、45、57、63> <34、16、20> <45、57、63> <47、57、63> <57、63> <16、20>

私はこれを解決するためにC#を使用しようとしましたが、データの量を考えると不可能になりました。私の同僚は、再帰を使用することを勧めていると言いました。私は彼の意味を理解しようとしていますが、私はクライアント側の開発者であり、SQLの知識はあまりありません。

私はこれらをしました:

システム上で最も古い製品(最小識別子を使用)で再帰を開始しようとしています。しかし、それは機能しません。それは私にすべての貿易チェーンを与えました。一番大きいものが必要です。

出力例を次に示します。

0 投票する
1 に答える
237 参照

jquery - jQuery再帰関数エラー

次の再帰関数を機能させようとしていますが、エラーが発生し続けます(次のコード)。

私が受け取っているエラーは次のとおりです。checkStatus(jobID) is undefined

すべてが正常に機能しているようです。Firebugはこの警告をスローしているだけです。関数はそれ自体を繰り返し、jobIDを送信し、PHPスクリプトから「処理」を受け取ります。

以前は再帰的に使用していたのと同様のスクリプトがありましたsetTimeout()が、関数の呼び出しとともにjobIDを渡す方法がわかりませんでした(エラー)。

何か案は?ありがとう!

0 投票する
2 に答える
852 参照

cakephp - Cakephp:ビューで関連モデルをレンダリングする方法

私の目的は、関連する子モデル(削除された後)のレコードをビューに表示することです。私の問題は、次のクエリを出力しようとすると、「通知(8):未定義のインデックス:」エラーメッセージが表示されることです。

トーナメントには多くのtournamentDetailsがあり、tournamentDetailsには多くの更新があります。トーナメントビューに表示される各トーナメント詳細のすべての更新を表示しようとしています。

だから私の質問は、エラーメッセージを適切に解決し、トーナメントビューページに各トーナメント詳細の更新を表示する方法です。

'トーナメント'コントローラービューアクションでの私の検索データは次のとおりです。

ビューでは、私はこのコードを持っています。

これは、私が他の関連する子レコードに問題なく使用しているのと同じ「foreach」コードです。debug()関数を使用して調査しましたが、何が欠けているのかわかりませんでした。

デバッグ関数からの$updates配列の出力は、次のようになります。

これほど深いレコードを表示する特別な方法はありますか?

いつものように、よろしくお願いします。ポール


更新:2011年2月23日 いくつかのテストの後、私が抱えていると思われる問題は、正しい値を見つけて$updates変数に渡すことです。

要約すると、$updates変数に現在の「tournament_details_id」を保持させたいと思います。これにより、関連する更新レコードが「トーナメント」ビューに表示されます。

私はまだ初心者であり、明らかなことを見落としている可能性があります。

モデル情報は次のとおりです。

コントローラーデータ:

トーナメントビュー。これは、「トーナメントの詳細」および(理想的には)関連するトーナメントの詳細「更新」を表示します。

トーナメントの詳細「id」を整数として追加することでこれをテストしました。正しい「update」レコードが表示されます。ただし、同じように検索操作を構成する際に問題があるようです。

いつものように私は助けに感謝します。

ありがとうポール

0 投票する
1 に答える
1629 参照

cakephp - Cakephp:関連するレコードの関連するレコードを表示する方法

私の目的は、関連する子モデル(削除された後)のレコードをビューに表示することです。再帰値を「1」に設定すると、現在のモデル、その所有者、および関連するモデルが返されることを理解しています。

方法がわからないのは、これをビューに表示することです。

私のアプローチは、関連付けられたモデルIDの値を保持する変数をコントローラーに作成することでしたが、それは機能しませんでした。

*トーナメントにスラッガブルな振る舞いを使用していることにも言及する必要があります。そのため、使用されるのは$ idではなく、$slugです。

モデルビューコントローラーの詳細は次のとおりです。

モデル

トーナメント-多くのトーナメントがあります詳細

tournamentDetails-多くの更新があります

更新-tournamentDetailsに属しています

トーナメントコントローラーアクション=表示

トーナメントビュー。これは、「トーナメントの詳細」および(理想的には)関連するトーナメントの詳細「更新」を表示します。

$ updateをデバッグすると、これがすべて表示されます。

ここで何が間違っているのかわかりません。

以下を使用して検索条件を作成するのは正しくありませんか?

助けてくれてありがとう。ポール