MySQL在4个表中选择数据(多个条件)

时间:2013-09-15 13:33:18

标签: mysql sql join

感谢另一位用户,我终于可以使用此查询收集一些数据了:

SELECT r.form, s.value as email
FROM subrecords s join
     records r
     on s.record = r.id AND r.name = 'question-form'
WHERE s.title = 'email'
GROUP BY s.value, r.form

可在Finding duplicates in MYSQL table where data is in multiple tables (multiple conditions needed)

找到上述查询中涉及的表格的详细信息

通过上述查询,我​​获得了提交特定表单的电子邮件列表。

我现在需要找出哪些电子邮件地址订阅了特定邮件列表,使用上面查询列出电子邮件地址的“s.value”

我首先需要找出subscriber.subid,它标识每个唯一订阅者及其电子邮件地址,这是我将加入上述查询结果的地方

  

表格 - >订户模式

     

subid |电子邮件

然后从下表中选择WHERE listid = '33'

  

表格 - > listsub schema

     

listid | subid |子句| unsubdate |状态

非常感谢大家的不可思议的帮助!

1 个答案:

答案 0 :(得分:1)

这是一种做更多联接的方法:

SELECT r.form, s.value as email,
       (case when max(l.listid is not null) then 'YES' else 'NO' end) as InList33
FROM subrecords s join
     records r
     on s.record = r.id AND r.name = 'question-form' left outer join
     subscriber_schema ss
     on ss.email = s.value left outer join
     listsub l
     on ss.subid = l.subid and
        l.listid = '33'
WHERE s.title = 'email'
GROUP BY s.value, r.form;