有没有办法一起使用IN和AND?问题是我想使用一列将我的查询与多个值匹配。
SELECT * FROM product INNER JOIN values USING(product_id) WHERE value = "large" AND value = "short"
问题是我不能使用IN子句,因为它在值之间定义为OR。
答案 0 :(得分:7)
尝试:
select product_id
from values
where value in ('large','short')
group by product_id
having count(distinct value) = 2
答案 1 :(得分:2)
不,那是不可能的,因为它根本没有任何意义。
字段不能同时等于两个不同的值。当y和z具有不同的值时,表达式x = y and x = z
将始终为false。
(例外情况是某些文化中可能被认为是平等的一些文本值,例如the
和thé
,但在这种情况下,这种比较仍然没有任何意义。)
答案 2 :(得分:-2)
没有。如果您以下面的方式使用查询,则IN和AND运算符都不同。
这个SQL没有任何意义。我只是想把错误的一个与正确的一个进行比较。 SELECT * FROM product INNER JOIN值USING(product_id)WHERE value =“large”AND value =“short”
SELECT * FROM product INNER JOIN values USING(product_id) WHERE value IN ("large","short");