MySQL检查包含各种其他行的行
我想知道是否有一个查询来获取包含所有其他行的行 我有一个这样的示例表MySQL检查包含各种其他行的行,mysql,Mysql,我想知道是否有一个查询来获取包含所有其他行的行 我有一个这样的示例表 id Col_1 Col_2 1. A 1 2. A 2 3. A 3 4. A 4 5. B 1 6. B 2 7. B 3 8. C 1 9. C 2 10. D 3 在这种情况下,列2只能包含1-4 预期结果是查询将产生的结果 id Col_1 Col
id Col_1 Col_2
1. A 1
2. A 2
3. A 3
4. A 4
5. B 1
6. B 2
7. B 3
8. C 1
9. C 2
10. D 3
在这种情况下,列2
只能包含1-4
预期结果是查询将产生的结果
id Col_1 Col_2
1. A 1
2. A 2
3. A 3
4. A 4
因为A有各种
列2
让您的表名为test
SELECT
t1.id,
t1.Col_1,
t1.Col_2
FROM test t1
INNER JOIN (
SELECT t2.Col_1
FROM test t2
WHERE t2.Col_2 IN (2, 3) -- Add where clause here
GROUP BY t2.Col_1
HAVING COUNT(0) = 2 -- change count based on where, you can also use COUNT(DISTINCT Col_2)
) AS temp ON t1.Col_1 = temp.Col_1
WHERE t1.Col_2 IN (2,3); -- Add here too, to make sure you only get 2 records for A and B.
一个简单的解决方案是自联接,其中另一个表包含每列1的总计数。我们可以有两个或多个记录用于单个映射,即
b1
的两个记录吗?尝试一下这个查询工作,但是如果问题是我们只有一个所需的Col_2
列表作为输入(例如,输入[2,3]
将产生a和B,因为a和B都有Col_2
值2和3)?这样做,在内部查询中使用where子句并更新计数。查看我的更新答案。@r880505,查看我的更新答案,如果它对您有效,请接受答案。