查找特定值的组合
Finding combinations of specific values
我不知道如何编写下面的查询。
我的table是
col1 col2
5 1
5 5
5 6
5 7
4 5
4 8
4 9
4 3
3 3
3 5
我需要 select 不同的 col1 id,其中两个参数都存在于 col2 中。
例如。如果我发送 6,7 它应该发送给我 5
尝试:
SELECT col1
FROM mytable
WHERE col2 IN (6, 7)
GROUP BY col1
HAVING COUNT(DISTINCT col2) = 2
这可能是最快的解决方案之一:
SELECT col1 -- already DISTINCT?
FROM tbl t1
JOIN tbl t2 USING (col1)
WHERE t1.col2 = 6
AND t2.col2 = 7;
假设 PRIMARY KEY
或 UNIQUE
对 (col1, col2)
的约束,就像通常实施的那样。否则添加 DISTINCT
.
还有许多其他方法可以实现关系划分。这里有一些:
- How to filter SQL results in a has-many-through relation
我不知道如何编写下面的查询。
我的table是
col1 col2
5 1
5 5
5 6
5 7
4 5
4 8
4 9
4 3
3 3
3 5
我需要 select 不同的 col1 id,其中两个参数都存在于 col2 中。 例如。如果我发送 6,7 它应该发送给我 5
尝试:
SELECT col1
FROM mytable
WHERE col2 IN (6, 7)
GROUP BY col1
HAVING COUNT(DISTINCT col2) = 2
这可能是最快的解决方案之一:
SELECT col1 -- already DISTINCT?
FROM tbl t1
JOIN tbl t2 USING (col1)
WHERE t1.col2 = 6
AND t2.col2 = 7;
假设 PRIMARY KEY
或 UNIQUE
对 (col1, col2)
的约束,就像通常实施的那样。否则添加 DISTINCT
.
还有许多其他方法可以实现关系划分。这里有一些:
- How to filter SQL results in a has-many-through relation