如何解决加入删除
我正在使用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\')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。