【问题标题】:inner join on two select queries in mysql table [duplicate]mysql表中两个选择查询的内连接[重复]
【发布时间】:2018-02-27 06:29:06
【问题描述】:

我有这张桌子

id empid  reaction        date_t
1  emp090 not_interested  2017-09-16
2  emp090 not_interested  2017-09-16 

我希望根据empiddate_t 计算反应次数。 我试过这个查询

SELECT c.COUNT(reaction) as interested,c.empid FROM `cases` c 
WHERE c.reaction="interested" and c.empid="EMP12654" 
  AND c.date_t BETWEEN  "2017-09-15"  AND "2017-09-18" 
INNER JOIN 
( SELECT cases.empid COUNT(reaction) not interested FROM `cases` 
  WHERE cases.reaction="not_interested" and cases.empid="EMP12654" 
    AND cases.date_t BETWEEN  "2017-09-15"  AND "2017-09-18" ) 
AS alpha on alpha.empid=c.empid;

谁能告诉我如何正确操作?

【问题讨论】:

标签: php mysql


【解决方案1】:

给你。

SELECT empid, count(reaction) as count, date_t
FROM cases
WHERE reaction="interested" AND empid="EMP12654" 
AND date_t BETWEEN "2017-09-15" AND "2017-09-18" 
GROUP BY empid, date_t;

【讨论】:

  • 错过了@Strawberry。我已经更新了它。您也可以通过更新我的答案而不是投反对票来做同样的事情。
  • 不会那么有趣。
  • 哈哈哈。太好了。希望能见到你
【解决方案2】:

您查询中的错误与几个错误有关:连接子句之间的错误顺序, 缺少内部连接子选择的表名,子查询中的列名之间缺少逗号,缺少 on 子句

但是如果你只想要对 date_t 和 empid 感兴趣的计数

您可以使用分组方式,例如:

  SELECT  
         c.empid
       , c.date_t
       , c.COUNT(*) as interested
  FROM `cases` c 
  WHERE  WHERE c.reaction="interested" 
  AND c.empid="EMP12654" 
  AND c.date_t BETWEEN  "2017-09-15"  AND "2017-09-18"
  GROUP BY  c.empid, c.date_t

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多