Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL检查包含各种其他行的行_Mysql - Fatal编程技术网

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,查看我的更新答案,如果它对您有效,请接受答案。