Mysql 如何通过一个匹配排除更多行

Mysql 如何通过一个匹配排除更多行,mysql,sql,Mysql,Sql,哦,对不起,我不知道如何正确地表达这个主题。 这就是为什么我最好描述一下这个问题 我有一个类似于下表的表格: 创建表(如果不存在)`Test` `Id`INT非空自动增量, `名称'VARCHAR5不为空, `v1`INT不为空, 主键'Id` ; 插入'Test``Name`、'v1` 值'A',4',A',3',B',6',C',1',C',2, “C”,7,“D”,7,“D”,5,“E”,3,“F”,1, "F,2,G,7,H,9,H,1,I,5 ;; 我需要的是找到所有匹配的名称,例如7

哦,对不起,我不知道如何正确地表达这个主题。 这就是为什么我最好描述一下这个问题

我有一个类似于下表的表格:

创建表(如果不存在)`Test` `Id`INT非空自动增量, `名称'VARCHAR5不为空, `v1`INT不为空, 主键'Id` ; 插入'Test``Name`、'v1` 值'A',4',A',3',B',6',C',1',C',2, “C”,7,“D”,7,“D”,5,“E”,3,“F”,1, "F,2,G,7,H,9,H,1,I,5 ;; 我需要的是找到所有匹配的名称,例如7。 这些是‘C’、‘D’和‘G’

现在我需要选择除“C”、“D”和“G”之外的所有行。 结果表应该是:

===============
| Name  | v1  |
|–––––––––––––|
|   A   |  4  |
|   A   |  3  |
|   B   |  6  |
|   E   |  3  |
|   F   |  1  |
|   F   |  2  |
|   H   |  9  |
|   H   |  1  |
|   I   |  5  |
|–––––––––––––|
我尝试了以下查询:

选择t1.Name,t1.v1 从'Test'改为t1 参加 从“测试”中选择名称` 其中v1=7 as t2 在t1.Name上!=t2.姓名 但我只是意识到我仍然不理解JOIN语句的机制

希望对这个问题有所帮助。 提前感谢。

您可以使用不存在:

这将选择测试中的所有行,其中行上的名称在表中的任何位置都没有带7的行。

您可以使用“不存在”:


这将选择测试中的所有行,其中行上的名称在表中的任何位置都没有带7的行。

下面介绍如何使用联接

SELECT x.* 
  FROM test x 
  LEFT 
  JOIN test y 
    ON y.name = x.name 
   AND y.v1 = 7 
 WHERE y.id IS NULL;
+----+------+----+
| Id | Name | v1 |
+----+------+----+
|  1 | A    |  4 |
|  2 | A    |  3 |
|  3 | B    |  6 |
|  9 | E    |  3 |
| 10 | F    |  1 |
| 11 | F    |  2 |
| 13 | H    |  9 |
| 14 | H    |  1 |
| 15 | I    |  5 |
+----+------+----+

下面是如何使用联接来执行此操作

SELECT x.* 
  FROM test x 
  LEFT 
  JOIN test y 
    ON y.name = x.name 
   AND y.v1 = 7 
 WHERE y.id IS NULL;
+----+------+----+
| Id | Name | v1 |
+----+------+----+
|  1 | A    |  4 |
|  2 | A    |  3 |
|  3 | B    |  6 |
|  9 | E    |  3 |
| 10 | F    |  1 |
| 11 | F    |  2 |
| 13 | H    |  9 |
| 14 | H    |  1 |
| 15 | I    |  5 |
+----+------+----+
此查询:

SELECT Name FROM Test WHERE v1 = 7
返回要排除的所有名称。 在操作员不在的情况下使用:

看。 结果:

此查询:

SELECT Name FROM Test WHERE v1 = 7
返回要排除的所有名称。 在操作员不在的情况下使用:

看。 结果:

> Id | Name | v1
> -: | :--- | -:
>  1 | A    |  4
>  2 | A    |  3
>  3 | B    |  6
>  9 | E    |  3
> 10 | F    |  1
> 11 | F    |  2
> 13 | H    |  9
> 14 | H    |  1
> 15 | I    |  5