首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果一行在两个表中都没有出现,则将其删除(删除孤立行)

如果一行在两个表中都没有出现,则将其删除(删除孤立行)
EN

Stack Overflow用户
提问于 2010-12-06 20:01:57
回答 5查看 146关注 0票数 2

如果在banners_pp中没有相应的行,我想删除banners中的any行

我该如何处理{doesn't exist}部件?

代码语言:javascript
复制
DELETE banners.* FROM banners
LEFT JOIN banners_pp
USING(banner_id)
WHERE banners_pp.banner_id {doesn't exist}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-12-06 20:04:55

代码语言:javascript
复制
DELETE FROM banners
WHERE NOT EXISTS (
    SELECT *
    FROM banners_pp
    WHERE banner_id  = banners.banner_id 
)

查看more详细信息

票数 1
EN

Stack Overflow用户

发布于 2010-12-06 21:24:59

使用WHERE banners_pp.banner_id IS NULL

LEFT JOIN中,左表(banners)中的行在右表(banners_pp)中没有相应的行,但在右表的列中有NULL。如果在banners_pp中没有包含banner_id = 2的条目,但在banners中存在包含banner_id = 2的条目,则连接表中的相应行可能如下所示:

代码语言:javascript
复制
 | banners.banner_id | banners.foo | banners_pp.banner_id | banners_pp.bar |
 |         2         |     x       |         NULL         |        NULL    |
票数 1
EN

Stack Overflow用户

发布于 2010-12-06 20:03:45

代码语言:javascript
复制
DELETE 
 FROM banners
 WHERE NOT EXISTS (SElect 1 from banners_pp
          WHERE banners_pp.banner_id = banners.banner_id)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4366173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档