通过使用不同表的连接和where条件删除行

6qqygrtg  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(416)

我在mysql数据库中有3个表,我想通过一个join从其中的2个表中删除,条件是第3个表没有属于另一个记录的剩余id。
到目前为止,

DELETE t1, t2
FROM t1
INNER JOIN t2 ON t1.qs_id = t2.qst_qs_id

我不能解决的是如何检查t3的记录以使where子句起作用。我想做的事情是这样的,
从t1和t2中删除,对于t3中没有任何行的任何qs\u id,表t3有一个名为qsa\u qs\u id的列,因此如果没有与连接中的id匹配的行,我可以运行delete,但我不知道如何将其放入我的表中 WHERE .
假想是,
从t1,t2中删除所有具有匹配的qs\u id列的行,但仅当t3没有任何剩余qs\u id的行时才执行此操作。

8ulbf1ek

8ulbf1ek1#

DELETE t1, t2 
FROM t1
INNER JOIN t2 ON t1.qs_id = t2.qst_qs_id 
WHERE t1.qs_id NOT IN (SELECT t3.qs_id FROM t3);

相关问题