1

有没有办法同时使用 IN 和 AND ?问题是我想使用一列将我的查询与多个值匹配。

SELECT * FROM product INNER JOIN values USING(product_id) WHERE value = "large" AND value = "short"

问题是我不能使用 IN 子句,因为它定义为值之间的 OR。

4

3 回答 3

7

尝试:

select product_id
from values
where value in ('large','short')
group by product_id
having count(distinct value) = 2
于 2012-03-02T16:33:37.223 回答
2

不,这是不可能的,因为它根本没有任何意义。

一个字段不能同时等于两个不同的值。当 y 和 z 具有不同的值时,表达式x = y and x = z将始终为假。

(例外情况是某些文本值在某些文化中可能被视为相等,例如theand thé,但在这种情况下比较仍然没有任何意义。)

于 2012-03-02T16:26:51.797 回答
-2

不,如果您以下列方式使用查询,IN 和 AND 运算符都是不同的。

这个 SQL 没有任何意义。我只是想比较错误的和正确的。SELECT * FROM product INNER JOIN values USING(product_id) WHERE value = "large" AND value = "short"

SELECT * FROM product INNER JOIN values USING(product_id) WHERE value IN ("large","short");
于 2012-03-02T16:24:19.343 回答