我有两个由一个id连接的表。 表A是我定义记录的地方。 表B是我使用定义并添加一些数据的地方。 我做了一些数据标准化和我已经意识到,在表B中有一些的ID不再在表A根据连接结果删除记录
定义。如果我运行此查询:
SELECT B.id_cred, A.id_cre from B LEFT JOIN A ON B.id_cred=A.id_cre
我看到这些记载,在A.id_cre上为NULL。
我想从表B中删除查询在表A上返回空的那些记录?
是这样的:
DELETE FROM B WHERE id IN (SELECT B.id from B LEFT JOIN A ON B.id_cred=A.id_cre WHERE a.id IS NULL)
但因为表B是目标和参照的同时此查询引发错误。
不能为UPDATE指定FROM子句
注意目标表B中的连接查询将返回1408行,所以我需要做的是在一个巨大方式
看起来类似于[无法在FROM子句中指定更新的目标表](http://stackoverflow.com/questions/45494/mysql-error-1093-cant-specify-target-table-for-update-在从条款) –
一个SO会帮助你。请检查[此链接](http://stackoverflow.com/questions/1980738/sql-delete-with-join-another-table-for-where-condition) –