SQL条件,一个明确的其他变量

时间:2013-11-12 15:39:52

标签: sql

我有以下SQL查询:

SELECT *
  FROM UserTags
    INNER JOIN Events ON UserTags.E_ID=Events.E_ID
WHERE ID = 2
  AND Tag='coffee'
  OR Tag='breakfast_brunch'
  OR Tag='scandinavian'

这会返回错误的结果,因为它返回的是`ID!= 2'的列。我相信这是试图匹配前两个,其次是其他?我希望查询只在ID = 2时匹配。

2 个答案:

答案 0 :(得分:3)

尝试

SELECT * FROM UserTags INNER JOIN Events ON UserTags.E_ID=Events.E_ID WHERE ID = 2 AND (Tag='coffee' OR Tag='breakfast_brunch' OR Tag='scandinavian')

如果您认为它是第一个条件必须为真(ID = 2)并且其中一个条件必须为真,那么将它放在括号中意味着您比较条件1和条件2,其中条件2是您的结果或声明。

答案 1 :(得分:1)

尝试:

SELECT * FROM UserTags 
INNER JOIN Events ON UserTags.E_ID=Events.E_ID 
WHERE ID = 2 AND 
    (Tag='coffee' OR Tag='breakfast_brunch' OR Tag='scandinavian')

阅读有关AND OR订购的文章:http://www.bennadel.com/blog/126-SQL-AND-OR-Order-of-Operations.htm