首页 > 解决方案 > 有条件的同一张表上的左外连接

问题描述

我在 mysql 5.7 DB 中有一个名为“mytable”的表,它是这样制作的:

 --------------------
| title   |   flag   |
|--------------------|
| first   |   0      |
| first   |   1      |
| second  |   0      |
 --------------------

从这个表中,我只需要选择标志 = 0 的行,并从中删除所有具有相同标题且标志 = 1 的行。最终得到如下结果:

 --------------------
| title   |   flag   |
|--------------------|
| second  |   0      |
 --------------------

我怎样才能写我的查询?谢谢。

标签: mysqljoinouter-join

解决方案


只需使用子查询并将其与 MySQL 的IN()功能结合使用即可。以下将起作用:

SELECT title, 
       flag
 FROM mytable
WHERE flag = 0
  AND title NOT IN( SELECT title FROM mytable WHERE flag = 1 );

SQL小提琴


推荐阅读