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


为此,你可以使用子查询。我们首先创建一个 −

mysql> create table DemoTable1427
   -> (
   -> StudentId int,
   -> StudentMarks int
   -> );
Query OK, 0 rows affected (1.28 sec)

使用插入在表中插入一些记录 −

mysql> insert into DemoTable1427 values(201,89);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1427 values(201,99);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1427 values(210,98);
Query OK, 1 row affected (0.16 sec)

使用选择从表中显示所有记录 −

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)

更新于: 12-11-2019

437 次浏览

开启您的职业生涯

完成课程后获得认证

开始
广告