我对MYSQL的了解非常基础,我将非常感谢以下方面的帮助:
子记录架构
id |记录|元素|标题|名字|类型|值
上表存储了通过网络表单提交的数据。
记录架构
id |提交|形式|标题|名称
我需要找到多次提交相同表单的所有用户(通过电子邮件发送),以下是一些进一步的说明:
到目前为止,感谢另一位用户,我有这个:
SELECT value as email
,record
,COUNT(*) as form_count
FROM subrecords
WHERE title = 'email'
AND record IN (SELECT id
FROM records
WHERE name = 'form_name'
)
GROUP BY value
,record
HAVING COUNT(*) > 1
它返回一个空值,但我无法缩小如何改进它以使其工作。 谢谢
答案 0 :(得分:1)
我认为问题在于您按record
进行分组。给定的记录只有一种形式。
但是,从in
切换到join
可以改善您的查询。另外,我不清楚你是否有一个特定的表单名称。如果是,请将and r.name = 'form_name'
添加到on
子句:
SELECT r.form, s.value as email, COUNT(distinct s.record) as form_count
FROM subrecords s join
records r
on s.record = r.id
WHERE s.title = 'email'
GROUP BY s.value, r.form
HAVING form_count > 1;