2

我有一张桌子,我们称之为“桌子”。

它有 2 个字段。我们称它们为“field_1”和“field_2”。

我的桌子看起来像这样:

=========================
| field_1   | field_2   |
=========================
| 6         | 2         |
| 6         | 3         |
| 6         | 6         |
| 6         | 7         |
| 20        | 3         |
| 20        | 6         |
| 20        | 7         |
| 6         | 9         |
=========================

我正在尝试做的是使用以下方法获得仅“6”的结果:

SELECT DISTINCT field_1 
FROM table 
WHERE field_2 IN (6, 7, 9)

这将返回“6”和“20”。

显然,WHERE IN 没有做我想做的事……我还有什么其他选择?

4

1 回答 1

0

您可以使用以下方法获得结果:

select field_1
from yt
where field_2 in (6, 7, 9)
group by field_1
having count(distinct field_2) = 3

请参阅SQL Fiddle with Demofield_2返回值在67和中的所有行9。该HAVING子句用于确保您只返回具有全部 3 个field_2值的那些。这个问题被称为关系划分

于 2013-04-11T23:09:19.150 回答