当在MySQL中找到另一个重复的列值时,根据列值排除行?

为此,您可以使用子查询。让我们首先创建一个-

mysql> create table DemoTable1427
   -> (
   -> StudentId int,
   -> StudentMarks int
   -> );

使用insert在表中插入一些记录-

mysql> insert into DemoTable1427 values(201,89);
mysql> insert into DemoTable1427 values(201,99);
mysql> insert into DemoTable1427 values(210,98);

使用选择显示表中的所有记录-

mysql> select * from DemoTable1427 ;

这将产生以下输出-

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
|       201 |           89 |
|       201 |           99 |
|       210 |           98 |
+-----------+--------------+
3 rows in set (0.00 sec)

这是当找到另一个重复的列值时基于列值排除行的查询。在这里,Studentmarks 89具有StudentId 201,并且该Studentid 201也具有另一条记录,因此两者都将从结果中排除-

mysql> select * from DemoTable1427
   -> where StudentId NOT IN (select distinct StudentId from DemoTable1427 where StudentMarks=89);

这将产生以下输出-

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
|       210 |           98 |
+-----------+--------------+
1 row in set (0.00 sec)