带计数的条件SQL查询

时间:2017-03-07 21:22:25

标签: php mysql sql

是否可以拥有以下内容:

如果assignments.customer_id = customers.idNULL,则查询为

$query  = "
SELECT customers.*
  FROM customers
 WHERE customers.active = 0
ORDER 
    BY customers.event_date DESC
";

如果确实存在,它将成为:

$query  = "
SELECT customers.* 
  FROM customers
     , assignments
 WHERE customers.active = 0
   AND NOT assignments.status = 5
   AND assignments.customer_id = customers.id
 ORDER BY customers.event_date DESC
";

或者应该在PHP中使用if语句的单独查询中完成?

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

如果我理解逻辑正确,您希望没有状态为5的任务的非活动客户:

   var protected = {}

   Object.defineProperty(this,
     'setter', {
       value: function(name , value) {
         protected[name] = value
       },  
       writable: false,                                               
     })  

   Object.defineProperty(this,
     'getter', {
       value: function(name , value) {
         return JSON.parse(JSON.stringify(protected))
       },  
       writable: false,
     })  

  Object.freeze(this.setter)
  Object.freeze(this.getter)

答案 1 :(得分:-1)

这应该可以解决问题

$query  = "SELECT COUNT(customers.id) AS customer_count ";
$query .= "FROM customers "; 
$query .= "LEFT JOIN assignments ON customers.id = assignments.customer_id ";
$query .= "WHERE customers.id IS NULL ";
$query .= "AND assignments.customer_id IS NULL ";
$query .= "AND customers.active = 0 ";
$query .= "AND assignments.status != 5 ";
$query .= "ORDER BY customers.event_date DESC";