する質問をすることでしか得られない、回答やアドバイスがある。462前提・実現したいことDB上に以下のようなテーブルがあるとします。3IDは主キー、WEIGHTはその要素の重み、NEXT_IDはその要素の次の要素です。この表に対して任意のIDを指定した時に、NEXT_IDをNULLになるまで順に辿り、その間に出現したWEIGHTの合計を求めたいです。ようにPHP内で1行ずつセレクト文を発行しながら辿るような実装をしていますが、10レコード辿る場合は10回もSELECT文を発行しています。$row['NEXT_ID'];}SELECTの回数が多いのは何か気持ち感じがしてて、出来れば1回のSELECT文でNEXT_IDを最後まで辿って重みの合計を持ってくるようなクエリが理想なのですが、SQLのみでそれは可能でしょうか。「SQLでそんなこと不可能だ」、「10回なんて細かい事気にせずクエリ投げまくれ」といった意見でも結構です。attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。再帰問い合わせによる方法、さらにはデータ構造を工夫することで実現する「入れ子構造モデル」と言った方法もあります。調べてみられるのがよろしいでしょう。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。00:59再帰問い合わせという技術がある事を初めて知りました。調べてみてから手間や必要性を考えて導入するか考えてみようと思います。回答していただきありがとうございました。再帰問い合わせという技術がある事を初めて知りました。調べてみてから手間や必要性を考えて導入するか考えてみようと思います。回答していただきありがとうございました。キャンセル完了するlink+2SQLが不得手なテーマではありますが、近年のRDBの多くが実装しているCTE(共通テーブル式)やテーブル設計の工夫にて、SQLのみでも解決できるテーマとなっています。タイトルからは分かりにくいですが、こちらでRDBを用いた階層モデル・連結リストの実装手段について言及していますのでご参考までに。残念ながらMySQL、MariaDBでは未サポート(MariaDBではβ版でWITH句のサポートを始めるようなことは言ってた気がする・・・)となってますが、tacsheavenさんが言及しているように、近年のRDBは再帰問い合わせの機能を標準で実装しています。調べてみると良いかもしれません。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。Serverなどへの乗り換えも視野に入れてみようと思います。ヒントを頂けたので自分で調べる足掛かりになりそうです。ありがとうございました。Serverなどへの乗り換えも視野に入れてみようと思います。ヒントを頂けたので自分で調べる足掛かりになりそうです。ありがとうございました。キャンセル完了するlink0テーブルの変更ができないなら、現状のままでいい気がします。気分的にはアレでしょうが。SQLの発行を減らしたいならストアドファンクションにするって手もありますが、処理コストをどこで持つかの違いだけですね。一意のIDから決まった数値を返すのが目的なら、IDと合計WEIGHTを持つようにすれば簡単でしょうが...たぶんそれはナシなんでしょうねえ。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。頂いたご意見への回答は行っておりません。