加入删除

问题描述

我正在使用MysqL: btableA具有tableB_id列 tableB具有some_interestring_column_on_TableB 我想要(下面的伪sql):
delete from tableA 
 where the associated row in tableB (via tableB_id) has  
     some_interestring_column_on_TableB = \'interestingValue\'
请帮助我将伪sql转换为真实sql。     

解决方法

        MySQL支持DELETE语句中的JOIN,以及在单个语句中从多个表中删除。以下内容只会从TABLEA中删除:
DELETE ta
  FROM TABLEA ta
  JOIN TABLEB tb ON b.id = a.tableb_id
                AND b.col = \'some value\'
如果要从两个表中删除,请使用:
DELETE ta,tb
  FROM TABLEA ta
  JOIN TABLEB tb ON b.id = a.tableb_id
                AND b.col = \'some value\'
就是说,这种支持在其他数据库中很少见-在大多数情况下,您必须使用ѭ3或
EXISTS
。     ,        尝试这个:
 DELETE TableA
 WHERE tableB_id IN (
    SELECT id FROM TableB 
    WHERE  interestring_column=\'pizza\');
    ,        我不知道mysql语法,但是我在想类似的东西(来自mssql):
delete from tableA 
where tableA.tableB_id in 
   (select tableB.id from tableB 
   where tableB.some_interesting_column_on_TableB = \'interestingValue\')