する質問をすることでしか得られない、回答やアドバイスがある。105お世話になっております。あるマスタデータの総当り形式でのデータ入力フォームを作ろうとしています。仮に、「A地点からB地点へ移動すると5pt、B地点からC地点だと10pt」という要件だとします。|例として、以下の2テーブルがあるとします。テキストフォームがあります。して区別する想定です(端折ってます)。簡単なソース例が下記です。%>このようにSpotsテーブルのデータを入れ子でループして、table要素で表を作っています。POSTされたデータはPointsテーブルへINSERTされます。「新規登録時は上記でよいが、更新時はどのデータを取得してviewに展開すればよいか」で悩んでおります。登録したpointデータはPointsテーブルにあるので、Pointsテーブルからのデータを取得して展開しようすると、Pointsテーブルに存在しない組み合わせのデータが展開できない。登録時にすべての組み合わせのデータをPointsテーブルにINSERTしておけばレコードは登録できるが、あとからspotsテーブルのデータが追加された場合、やはりPointsテーブルにデータがないのでviewに展開できない。JOIN以外の方法で何とかならないか。分かりにくい説明で恐縮ですが、何かアドバイスいただければ幸いです。実ソースでなく、考え方だけでも結構です。RailsとPHPのタグをつけましたが、言語というよりは考え方の質問なので言語は問いません。attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheckベストアンサー0いろいろ考え方がありますが・・・おそらくご想定されてると思われる、総当たりの表を導出する方法については以下のようにすれば良いと思います。SpotsテーブルのIDの、直積集合を導出します。テーブルを外部結合させれば、おそらく目的の総当たり表が導出できます。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。編集ご回答ありがとうございます。アドバイスいただいたSQLで目的のデータが取得できました!!やはり直積で取ってくる方法が素直でしょうか。Railsあたりが直積でのデータ取得はあまりしていない雰囲気なので(そういうの場面に出くわしたら、それは設計が悪い?)、処理手順やDB設計の見直しで対応できないかと思って質問させていただいた次第です。ご回答ありがとうございます。直積で取ってくる方法が素直でしょうか。Railsあたりが直積でのデータ取得はあまりしていない雰囲気なので(そういうの場面に出くわしたら、それは設計が悪い?)、処理手順やDB設計の見直しで対応できないかと思って質問させていただいた次第です。JOIN(直積)を使わない方法で実装できたので補足します。redmineのワークフロー設定画面を参考にしました。ここで@pointsにfrom.idとto.idの組み合わせがあるかチェック。あれば変数pointに該当するポイント数をセット。%>(コード例が若干変ですが)これで何とかやりたいことができました。JOINであることと、spotsマスタが多い場合のパフォーマンスが気になりました。上記のコードはSQLのコストは少なそうですが、コードがやや複雑なので説明がないと初見では時間がかかりそうと思いました。アドバイスありがとうございました。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。0ORMを利用してSUMの合計値を算出しuser_idごとに選別する。頂いたご意見への回答は行っておりません。