2 つのテーブルがあるとします。1 つは呪文のリスト、もう 1 つはグリモリー (ユーザーが学習するために選択した、または既に学習した呪文のリスト) です。
mysql> SHOW COLUMNS FROM Grimory;
+--------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| personage_id | int(11) | YES | MUL | NULL | |
| spell_id | int(11) | YES | MUL | NULL | |
| isLearned | tinyint(1) | NO | | NULL | |
| isSelected | tinyint(1) | NO | | NULL | |
+--------------+------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> SHOW COLUMNS FROM Spell;
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| description | longtext | NO | | NULL | |
| chatDescription | longtext | NO | | NULL | |
| level | int(11) | NO | | NULL | |
| isActive | tinyint(1) | NO | | NULL | |
| category_id | int(11) | YES | MUL | NULL | |
| createdAt | datetime | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)
問題。
category_id ごとにすべての呪文を含むリストを表示したいのですが、その呪文が現在のユーザー (personage_id) によって学習または選択されているかどうかを表示するすべての行について表示します。
適切なクエリを書くのを手伝ってもらえますか?
これがどのように機能するか: 私が生成する php で: 呪文のリスト | チェックボックスが選択されています | checkBoxは調査済み
isSelected チェックボックスをクリックすると、grimory のレコードに現在のユーザーとスペルが追加されます。