我试图在彼此之后做两个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子句组合在一起,但我希望它们是分开的。有什么想法吗?
答案 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' )