SQL SELECT查询,没有共同列的表

时间:2014-06-20 15:16:53

标签: mysql sql select delete-row

我正在使用两个数据库: 两个表之间的关系是db1.tab1.model_id=db2.tab2.ID_ELEMENT

DELETE FROM db1.tab1
WHERE db1.tab1.model_id in (
    SELECT db1.tab1.model_id 
    FROM db1.tab1
    WHERE db1.tab1.model_id = db2.tab2.ID_ELEMENT in (
        SELECT db2.tab2.ID_ELEMENT
        FROM db2.tab2
        WHERE db2.tab2.DELETED='1'
    )
);

我不是很惊讶,因为我的第4行很糟糕,所以这不起作用,但问题是我知道我不能放

WHERE db1.tab1.model_id in (SELECT db2.tab2.ID_ELEMENT .....)`

我的意思是WHERE子句应该与in SELECT

相同

1 个答案:

答案 0 :(得分:1)

你能试试这个查询吗? 通过查看您的查询,您似乎想要从tab1中删除所有记录,并在tab2中将其标记为已删除。

DELETE db1.tab1
FROM db1.tab1 
    JOIN db2.tab2 ON db1.tab1.model_id = db2.tab2.ID_ELEMENT 
WHERE db2.tab2.DELETED='1';