【问题标题】:mysql having and where clause on the same querymysql 在同一个查询上有和 where 子句
【发布时间】:2012-07-02 10:59:16
【问题描述】:

这是我的代码:

$sqlz = "SELECT t1.user_id, t2.status, t2.email 
         FROM coverages t1 
         LEFT JOIN users t2 ON t1.user_id = t2.user_id 
         GROUP BY t1.user_id  
         HAVING COUNT(t1.user_id) =".$value;

我想添加这个“WHERE users.email IS NOT NULL” 当我添加它时,它会返回一个白页/没有结果。我知道事实上数据库上至少有 200 个结果包含电子邮件并且符合该标准。

这是我做的没有用的一个例子:

 $sqlz =    "SELECT t1.user_id, t2.status, t2.email 
             FROM coverages t1 
             LEFT JOIN users t2 ON t1.user_id = t2.user_id
             WHERE users.email IS NOT NULL 
             GROUP BY t1.user_id  
             HAVING COUNT(t1.user_id) =".$value;

【问题讨论】:

  • 您已为您的users 表指定别名t2:因此您需要在WHERE 标准中使用该别名。

标签: php mysql sql select


【解决方案1】:

我认为您需要使用t2别名)而不是users

 $sqlz =    "SELECT t1.user_id, t2.status, t2.email 
             FROM coverages t1 
                     LEFT JOIN users t2 ON t1.user_id = t2.user_id
             WHERE t2.email IS NOT NULL 
             GROUP BY t1.user_id  
             HAVING COUNT(t1.user_id) = " .$value;

【讨论】:

  • 有条款有效,但如果我将它添加到它不会起作用的地方。我可以知道这背后的秘密吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多