【发布时间】:2012-10-29 15:06:36
【问题描述】:
我需要查找用户的电子邮件首选项。
此表包含用户可以接收的电子邮件类型,按类别细分。
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
我遇到问题的地方:如果用户没有设置他们的偏好,这个查询不会返回任何行。我希望它为缺少的电子邮件类别返回默认的“每日”。
【问题讨论】:
-
您在哪里需要 email_preferences_categories(字段名称在 emaial_preferences 和 emaail_preferences_category 中)?你不想先从用户表中获取值吗?
-
当用户表为空或缺少条目时,我需要 email_preferences_categories。
标签: mysql