2014-10-16 33 views
1

我有两个表table1table2。我想根据table2中的条件从table1中删除。内部加入和删除不工作在mysql

我有以下MySQL查询:

DELETE FROM table1 
INNER JOIN table2 ON table2.col1 = table1.col1 
WHERE table2.col2 = '1' 

这返回一个语法错误。上述语法有问题吗?

回答

2

您需要指定要从删除表:

DELETE table1 
    FROM table1 INNER JOIN 
     table2 
     USING (col1) 
    WHERE table2.col2 = '1'; 
+0

是做到了!谢谢 :) – 2014-10-16 15:14:34

1

试试这个:

DELETE FROM table1 
WHERE EXISTS(
    SELECT 'C' 
    FROM table2 
    WHERE table2.col1 = table1.col1 
    AND table2.col2 = '1' 
) 
1

你可以这样做:

DELETE FROM table1 WHERE col1 IN (select col1 from table2 WHERE table2.col2 = '1');