MySQL JOIN查询不会带回正确的信息

时间:2015-01-05 13:57:00

标签: mysql join

我有以下查询:

SELECT login_id, staff, name, COUNT( company ) AS resp_1
FROM trespondents
JOIN tresults_new 
ON respondents.login_id = tresults_new.company
WHERE tresults_new.sdate =  'NOV2014'
AND company =  'hh77yt6'
GROUP BY name

在表tresults_new中,有两个日期的数据:

MAY2014
NOV2014

我遇到问题的查询部分是COUNT( company ) AS resp_1 - 在上面的查询中,它会带回 158 。这实际上是两者 MAY2014和NOV2014的总和。

从上面的查询中可以看出,我试图恢复2014年11月的总数,因此:

WHERE tresults_new.sdate =  'NOV2014'

上面的查询我哪里出错了,有人能找出我出错的地方吗?非常感谢任何帮助。

修改

要显示tresults_new只有上述两个日期,请运行以下代码:

SELECT * FROM tresults_new GROUP BY sdate

输出(编辑以删除可识别信息):

result_id   timestamp           sdate   
4293        2014-06-16 14:26:24 MAY2014 
1           2014-11-24 11:26:20 NOV2014

1 个答案:

答案 0 :(得分:0)

试试这个

SELECT login_id, staff, name, COUNT( company ) AS resp_1
FROM trespondents
JOIN (select * from tresults_new  where sdate= 'NOV2014' and company =  'hh77yt6') aa
ON respondents.login_id = aa.company
GROUP BY name