私は、usersテーブル、positionsテーブル、およびassociates users_positionsテーブルを持っています。それは何か(最低限)のように見えるクエリからの結果カラムの追加
:
USERS
-----
id
USERS_POSITIONS
---------------
id
user_id (FK)
position_id (FK)
calendar_date (a specific date)
POSITIONS
---------
id
day (a day of the week)
title
ユーザーがcalendar_dateとともにusers_positionsテーブルに入っている、位置の日には、ゼロまたはそれ以上の位置のためにボランティア活動をすることができます。私は、ユーザーがいつでも自分のレコードを編集することができるので、ユーザーがそのポジション(チェックボックスになる)を持っているかどうかの記録と共に、ポジションをフォームに入力しています。
まず、データベースからポジションを引き出し、ユーザーがボランティアしたポジションだけを返すジョインを引き出しましたが、MySQLにはすべての位置を返し、余分な列にある何らかの余分な列をクエリから作成し、それらをボランティアのためにマークします。これで、フォームを生成するときに、これらのチェックボックスを情報でチェックしたり、チェックを外したりすることができました。
私が考えることができる唯一の方法は、その日の位置行の配列を取得するためにphpを使用し、次にユーザーがどの行をボランティアしたかを示す結合行の配列を取得することです。次に、前の段落で説明したデータを持つ新しい配列を作成するために、それらを繰り返します。
MySQLでこれを行う方法があった場合は、もちろんそれが望ましいでしょう。では、MySQLはこのようなことをすることができますか?
「アップ」とは何ですか? – xdola
これはテーブルエイリアスなので、カラムを参照するたびにフルテーブル名を書き出す必要はありません。 – Barmar
'Users_Positions AS up'は、' Up'を 'Users_Positions'のエイリアスにします。 – Barmar