如何检查来自另一列的值是否存在于每个日期-mysql中?

如何检查来自另一列的值是否存在于每个日期-mysql中?,mysql,date,datetime,Mysql,Date,Datetime,我有一张桌子: date id count(sub_id) 2016-03-01 2 1 2016-03-02 650 1 2016-03-03 2 1 2016-03-04 2697 2 2016-03-05 2 4 2016-03-06 2697 3 2016-03-07 1000 2 2016-03-08 2 3 2016-03-09 2697 3 日期为2016年3月1日至2

我有一张桌子:

date       id    count(sub_id)
2016-03-01 2       1 
2016-03-02 650     1 
2016-03-03 2       1 
2016-03-04 2697    2 
2016-03-05 2       4 
2016-03-06 2697    3
2016-03-07 1000    2 
2016-03-08 2       3 
2016-03-09 2697    3
日期为2016年3月1日至2016年3月15日

从3月1日到15日,我需要检查每个日期都有什么id。 i、 e哪些用户每天提交数据

到目前为止,我有这个

select submission_date, id, count(submission_id) 
from submissions  
group by submission_date, id
having count(submission_id) >= 1

但这仅显示日期和用户以及他们每天提交的内容数量-例如2。

如果每个
id
的不同日期数等于表中的不同日期数,则必须
按id
分组,并在
HAVING
子句中进行检查:

select id
from submissions  
group by id
having count(distinct submission_date) = (select count(distinct submission_date) from submissions)
如果没有重复的
id
提交日期
组合,您可以更改为:

having count(submission_date) = (select count(distinct submission_date) from submissions)
如果也没有
null
日期:

having count(*) = (select count(distinct submission_date) from submissions)

您应该按日期分组

日期|组_CONCAT(由'id'区分'id'顺序) :--------- | :---------------------------------------- 2016-03-01 | 2 2016-03-02 | 650 2016-03-03 | 2,2697 2016-03-04 | 2697 2016-03-05 | 2 2016-03-06 | 2697 2016-03-07 | 1000 2016-03-08 | 2 2016-03-09 | 2697
dbfiddle

我从未使用过group_concat。。嗯,很有趣
CREATE TABLE table1 (
  `date` DATE,
  `id` INTEGER
);

INSERT INTO table1
  (`date`, `id`)
VALUES
  ('2016-03-01', '2'),
  ('2016-03-02', '650'),
  ('2016-03-03', '2'),
  ('2016-03-04', '2697'),
  ('2016-03-03', '2697'),
  ('2016-03-05', '2'),
  ('2016-03-06', '2697'),
  ('2016-03-07', '1000'),
  ('2016-03-08', '2'),
  ('2016-03-09', '2697');
SELECT `date`, GROUP_CONCAT(DISTINCT `id` ORDER BY `id`)
FROM table1
GROUP BY `date`
ORDER BY `date`
date | GROUP_CONCAT(DISTINCT `id` ORDER BY `id`) :--------- | :---------------------------------------- 2016-03-01 | 2 2016-03-02 | 650 2016-03-03 | 2,2697 2016-03-04 | 2697 2016-03-05 | 2 2016-03-06 | 2697 2016-03-07 | 1000 2016-03-08 | 2 2016-03-09 | 2697