使用2个WHERE子句

时间:2014-08-10 10:55:49

标签: mysql sql where

我试图在彼此之后做两个WHERE子句,而不是显示我想要的内容。

SELECT FROM users LEFT JOIN table2 on users.user = table2.total AND $table2.date = CURDATE() WHERE users.value = '$value' WHERE users.user = 'marketing' OR users.user = 'sales'";

我希望显示与$ value中存储的内容相匹配的所有用户,同时我还希望所有用户值为' marketing'或者'销售'。目前它显示所有用户,甚至是那些在$ variable中没有正确值的用户。看起来它将我的两个WHERE子句组合在一起,但我希望它们是分开的。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以添加更多条件,通过“AND”关键字将它们连接起来。像这样:

SELECT *
FROM
  users
  LEFT JOIN table2 on
     users.user = table2.total AND
     table2.date = CURDATE()
WHERE
  users.value = '$value' AND
  (users.user = 'marketing' OR users.user = 'sales')

但我认为这可能更容易阅读并且可能更符合您的要求:

SELECT *
FROM
  users
  LEFT JOIN table2 on
  users.user = table2.total
WHERE
  users.value = '$value' AND
  users.user in ('marketing', 'sales') AND
  table2.date = CURDATE()

答案 1 :(得分:0)

我修复了你的查询中的一些问题。您不能使用两个where子句。在这种特定情况下,使用in选择一个字段可以是特定列表之一的所有行:

 SELECT *
 FROM   users
 LEFT
 JOIN   table2
 on     users.user = table2.total
 AND    table2.date = CURDATE()
 WHERE  users.value = '$value'
 AND    users.user in ( 'marketing', 'sales' )