ユーザーのメール設定を調べる必要があります。
この表には、ユーザーが受信できる電子メールの種類がカテゴリ別に含まれています。
email_preferences_categories
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | text | YES | | NULL | |
| overview | text | YES | | NULL | |
+----------+------------------+------+-----+---------+----------------+
この表には、さまざまなタイプを受け取るための設定が含まれています。プリファレンスを設定していない場合、このテーブルには行がありません。
email_preferences
+------------+---------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_id | int(10) unsigned | NO | | NULL | |
| name | text | YES | | NULL | |
| frequency | enum('Daily','Monthly','None') | YES | | Daily | |
+------------+---------------------------------+------+-----+---------+----------------+
特定のユーザーの電子メール設定に対応する名前と頻度を返すMYSQLクエリを作成する必要があります。
SELECT name, frequency
FROM email_preferences
LEFT JOIN email_preferences_categories using (name)
WHERE user_id = 42
問題が発生している場所:ユーザーがプリファレンスを設定していない場合、このクエリは行を返しません。欠落している電子メールカテゴリのデフォルトの「毎日」を返すようにしたいと思います。