首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL DELETE with JOIN WHERE条件的另一个表

SQL DELETE with JOIN WHERE条件的另一个表
EN

Stack Overflow用户
提问于 2009-12-30 23:27:50
回答 4查看 205.9K关注 0票数 73

我必须从guide_category中删除与guide表没有关系的行(死关系)。

这是我想要做的,但它当然不起作用。

代码语言:javascript
复制
DELETE FROM guide_category AS pgc 
 WHERE pgc.id_guide_category IN (SELECT id_guide_category 
                                   FROM guide_category AS gc
                              LEFT JOIN guide AS g ON g.id_guide = gc.id_guide
                                  WHERE g.title IS NULL)

错误:

不能在FROM子句

中为update指定目标表'guide_category‘

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-30 23:31:10

由于锁定实现问题,MySQL不允许使用DELETEUPDATE引用受影响的表。

您需要在此处创建一个JOIN

代码语言:javascript
复制
DELETE  gc.*
FROM    guide_category AS gc 
LEFT JOIN
        guide AS g 
ON      g.id_guide = gc.id_guide
WHERE   g.title IS NULL

或者只使用NOT IN

代码语言:javascript
复制
DELETE  
FROM    guide_category AS gc 
WHERE   id_guide NOT IN
        (
        SELECT  id_guide
        FROM    guide
        )
票数 110
EN

Stack Overflow用户

发布于 2009-12-30 23:35:20

我认为,从你的描述来看,以下内容就足够了:

代码语言:javascript
复制
DELETE FROM guide_category 
WHERE id_guide NOT IN (SELECT id_guide FROM guide)

我假设所涉及的表上没有引用完整性约束,对吗?

票数 9
EN

Stack Overflow用户

发布于 2013-05-15 15:03:52

为了便于理解,请尝试以下示例SQL脚本

代码语言:javascript
复制
CREATE TABLE TABLE1 (REFNO VARCHAR(10))
CREATE TABLE TABLE2 (REFNO VARCHAR(10))

--TRUNCATE TABLE TABLE1
--TRUNCATE TABLE TABLE2

INSERT INTO TABLE1 SELECT 'TEST_NAME'
INSERT INTO TABLE1 SELECT 'KUMAR'
INSERT INTO TABLE1 SELECT 'SIVA'
INSERT INTO TABLE1 SELECT 'SUSHANT'

INSERT INTO TABLE2 SELECT 'KUMAR'
INSERT INTO TABLE2 SELECT 'SIVA'
INSERT INTO TABLE2 SELECT 'SUSHANT'

SELECT * FROM TABLE1
SELECT * FROM TABLE2

DELETE T1 FROM TABLE1 T1 JOIN TABLE2 T2 ON T1.REFNO = T2.REFNO

你的案例是:

代码语言:javascript
复制
   DELETE pgc
     FROM guide_category pgc 
LEFT JOIN guide g
       ON g.id_guide = gc.id_guide 
    WHERE g.id_guide IS NULL
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1980738

复制
相关文章

相似问题

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