gpt4 book ai didi

SQL 查询类似于 IN where 子句,带有 AND 条件而不是 OR

转载 作者:行者123 更新时间:2023-12-04 23:38:52 24 4
gpt4 key购买 nike

我正在尝试优化我的 SQL 查询,这样我们就不必在我们的 JVM 上处理响应。

考虑我们有下表,其中包含条目:

+-----------+-------------+
| Column1 | Column2 |
+-----------+-------------+
|val11 |val21 |
|val11 |val22 |
|val11 |val23 |
|val12 |val21 |
|val12 |val24 |
+-----------+-------------+

现在,我想执行一个查询,这将导致我的 column1s 具有映射到 Column2s 值 val21、val22、val23 的行。

类似于 IN where 子句,但是,由于 IN where 子句在 IN 子句的值之间搜索带有 OR 的数据,我想在这些值之间搜索 AND。

对于 IN where 子句:
SELECT Column1 from table
WHERE Column2 IN (val21, val22, val23)

将导致 val11 和 val12(因为 IN 子句将检查带有 val21、val22 或 val23 的数据)。

相反,我想要一些查询来检查 Column1 与所有三个 val21、val22、val23 的映射,就像我们对 val11 所做的那样。

使用 Informix 数据库。

最佳答案

这称为“关系划分”。

通常的方法是这样的:

select column1
from x
where column2 in ('val21', 'val22', 'val23')
group by column1
having count(distinct column2) = 3;

请注意,这还将包括比 column2 中分配的三个值更多的值。 (因此它返回那些至少具有这三个值的值)

关于SQL 查询类似于 IN where 子句,带有 AND 条件而不是 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com