データベース内に2つのテーブルがありますので、「トレーニング」と「演習」です。ワークアウトには、エクササイズと呼ばれる行が含まれています。この行は、エクササイズIDのカンマ区切りリストです。 '1,2,3'テーブル内の1行を取得するクエリと、その行で参照される別のテーブルの多くの行
私の質問では、トレーニングテーブルから行を選択する1つのIDを持つ1つの列を選択し、MySQLがその行のリストから各演習をフェッチするようにすることはできますかそれらは「運動」行の中にありますか?
現時点では、私は運動の行を選択し、それぞれの練習問題ごとに個別のリクエストを行い、結果として重大な非効率性をもたらすPHPを使用しています。
私はJoining rows as array from another table for each rowを見て、group_concat()関数についていくつか調査しましたが、それは私が後にしていることではありません。
更新 ここでは2つのテーブルです:
スキーマを再設計し、 'exercises_workouts'(または同様のもの)という相互参照テーブルを作成します。 CSVフィールドを捨てます。それは、あなたが解決するのに役立つデータベースの穀物に逆らっています。 – webbiedave
フィールド 'workoutid'と 'exerciseid'だけがあり、そこから行くテーブルがありますか? –
はい。 http://www.tonymarston.net/php-mysql/many-to-many.html – webbiedave