MySql查询图形数据组-按列中的数据筛选
我有两个要连接的表,MySql查询图形数据组-按列中的数据筛选,mysql,group-by,Mysql,Group By,我有两个要连接的表, 这是表1“日历” 这是表2“潜在客户” 我有这个疑问 SELECT calendar.datefield AS DATE, IFNULL( count( lead.insertDate ) , 0 ) AS task FROM lead RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield ) GROUP BY DATE LIMIT 30 它工作得很好,这是我得到的结果: 问题是我
这是表1“日历” 这是表2“潜在客户”
我有这个疑问
SELECT calendar.datefield AS DATE, IFNULL( count( lead.insertDate ) , 0 ) AS task FROM lead RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield ) GROUP BY DATE LIMIT 30
它工作得很好,这是我得到的结果:
问题是我想通过lead.lpid
过滤数据。
我尝试在查询“WHERE lead.lpid=x”的末尾添加,并在lead.lpid数据的查询调用的开头添加,如下所示:
SELECT lead.lpid, calendar.datefield AS DATE,
IFNULL( count( lead.insertDate ) , 0 ) AS task
FROM lead
RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield )
GROUP BY DATE LIMIT 30 WHERE lead.lpid = 9
但是我得到了这个错误
.....'WHERE lead.lpid = 9' at line 5
我有点迷路了。
任何帮助都会很好
这是我的SQL FIDLE,我已经尝试过查询:哪里出错了:
SELECT lead.lpid, calendar.datefield AS DATE,
IFNULL( count( lead.insertDate ) , 0 ) AS task
FROM lead
RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield )
WHERE lead.lpid = 9
GROUP BY DATE LIMIT 30
注意:在分组之前必须在何处
根据需要新建查询:
SELECT lead.lpid, calendar.datefield AS DATE,
IFNULL( count( lead.insertDate ) , 0 ) AS task
FROM lead
RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield )
AND lead.lpid = 9
GROUP BY DATE LIMIT 30
联机使用sql Formatter:很好,它完成了工作,但现在我只看到有数据的日期。是否有办法查看所有日期,包括包含零的行?就像我在问题中发布的结果一样?当然,有没有一种简单的方法可以保留包含“0”的日期,并保留条件?是否也需要计数为0的记录?如果提供sqlfiddlewow man,这将非常有用!这正是我需要的!因此,您在选择之后删除了对
lead.lpid
的调用?伟大的tnx!
SELECT lead.lpid, calendar.datefield AS DATE,
IFNULL( count( lead.insertDate ) , 0 ) AS task
FROM lead
RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield )
WHERE lead.lpid = 9 GROUP BY DATE LIMIT 30
SELECT lead.lpid,
calendar.datefield AS DATE,
IFNULL(count(lead.insertDate), 0) AS task
FROM lead
RIGHT JOIN calendar ON (DATE(lead.insertDate) = calendar.datefield)
GROUP BY DATE
HAVING lead.lpid = 9 LIMIT 30