【发布时间】:2010-03-12 02:36:31
【问题描述】:
我有一个查询,其中包含订阅了为期 30 天的时事通讯试用的电子邮件列表。
$thirty = time() - 3024000;
SELECT c.email
FROM tbl_clients AS c
JOIN tbl_clientoptions AS o ON o.client = c.id
WHERE o.option = 'newsletter'
AND c.datecreated > $thirty
我想要做的是在同一个查询中进行检查,因此如果他们有 tbl_clientoptions.option = 'trialoverride' (即;客户端选项表中的一行值为“试用覆盖”)
TBL_CLIENTS表:
- 身份证
- 姓名
- 电子邮件
- 创建日期
TBL_CLIENTOPTIONS表:
- 身份证
- 客户
- 选项
【问题讨论】:
-
听起来你想
UNION两个选择语句一起,第二个与 TBL_CLIENTOPTIONS 连接 -
选项表包含时事通讯、促销材料、smsalerts、每月时事通讯等内容,还提供试用覆盖选项。根据勾选的选项,有多行。如果有一个带有时事通讯和短信警报的客户端,将有两行。如果我们取消勾选某项,则会删除一行。我想要做的是选择所有勾选了“时事通讯”且不到 30 天的人,以及所有勾选了“时事通讯”且超过 30 天的人,如果他们勾选了“试用覆盖”。我可能可以做两个查询,但希望一次做..