带有计数子查询的MYSQL内部联接

带有计数子查询的MYSQL内部联接,mysql,sql,join,Mysql,Sql,Join,我有一个Mysql查询,它从两个具有内部联接的表中选择一些列。它应该从一个表列中计算“Y”值,并使用Group By命令重新计算该值 这是我的疑问: SELECT (SELECT Count(tblinterview.Contacted) FROM tblinterview WHERE tblinterview.Contacted = "Y") as Contact_Y , tbldata.RegionID, tbldata.BranchCode, tbldata.BranchDesc, tb

我有一个Mysql查询,它从两个具有内部联接的表中选择一些列。它应该从一个表列中计算“Y”值,并使用Group By命令重新计算该值

这是我的疑问:

SELECT (SELECT Count(tblinterview.Contacted) FROM tblinterview WHERE tblinterview.Contacted = "Y") 
as Contact_Y , tbldata.RegionID, tbldata.BranchCode, tbldata.BranchDesc, tbldata.CampaignID,      tblinterview.EndTime      
FROM tbldata INNER JOIN tblinterview 
WHERE tblinterview.DataID = tbldata.DataId 
AND tblinterview.Complete = "Y"
GROUP BY tbldata.BranchCode, tbldata.RegionID, tblinterview.EndTime
我的结果集是: 其中,所有联系人是所有记录的总计数,而不是分组计数

Contact_Y      RegionID        BranchCode           BranchDesc     CampaignID   EndTime
1407            1           9725            Dada Motors        31           2012-01-26 12:51:12
1407            1           9725            Dada Motors        31           2012-01-31 10:25:18
1407            1           9725            Dada Motors        31           2012-02-01 11:30:37
1407            1           9725            Dada Motors        31           2012-02-01 14:48:57
1407            3           9732            Ballito Autohaus   37       2012-01-16 15:04:12
1407            3           9732            Ballito Autohaus   46           2012-01-18 11:59:53
1407            3           9732            Ballito Autohaus   31           2012-01-20 14:26:12
1407            3           9732            Ballito Autohaus   31           2012-01-20 16:05:48 
有人能解释一下我的问题出在哪里吗?

试试看

SELECT
  Count(tblinterview.Contacted) as Contact_Y,
  tbldata.RegionID,
  tbldata.BranchCode,
  tbldata.BranchDesc,
  tbldata.CampaignID,
  tblinterview.EndTime
FROM
  tbldata INNER JOIN tblinterview
  ON (tblinterview.DataID = tbldata.DataId
      AND tblinterview.Contacted = "Y")
GROUP BY
  tbldata.BranchCode,
  tbldata.RegionID,tblinterview.EndTime
试试这个


我们能跳过解释,给你一个正确的答案吗?@草莓,我们知道答案也会有用的谢谢!)我们能跳过解释,给你一个正确的答案吗?@草莓,我们知道答案也会有用的谢谢!)谢谢,但这是我的不足之处:“选择计数(tblinterview.Contacted)作为联系人_Y”我只需要在tblinterview.Contacted=“Y”的位置计算此计数谢谢,但这是我的不足之处:“选择计数(tblinterview.Contacted)作为联系人_Y”我只需要在tblinterview.Contacted=“Y”的位置计算此计数如果查询不起作用,你能给出具有期望结果的样本数据吗?491243,你能看看熟悉的问题吗:如果查询不起作用,你能给出具有期望结果的样本数据吗?491243,你能看看熟悉的问题吗:
SELECT   (SELECT Count(s.Contacted) 
        FROM tblinterview s
        WHERE s.Contacted = "Y" AND 
        tbldata .DataID = s.DataID) as Contact_Y , 
        tbldata.RegionID, 
        tbldata.BranchCode, 
        tbldata.BranchDesc, 
        tbldata.CampaignID,      
        tblinterview.EndTime      
FROM    tbldata 
        INNER JOIN tblinterview  ON tblinterview.DataID = tbldata.DataId 
WHERE   tblinterview.Complete = "Y"
GROUP BY tbldata.BranchCode, tbldata.RegionID, tblinterview.EndTime