我在mysql数据库中有3个表,我想根据第3个表没有与其他记录相关的ID来通过JOIN从其中2个表中删除。
到目前为止,我已经拥有
DELETE t1, t2
FROM t1
INNER JOIN t2 ON t1.qs_id = t2.qst_qs_id
我无法解决的是如何检查t3的记录以使where子句起作用。我尝试进行工作的场景如下,
从t1和t2删除,对于t3表t3中没有剩余任何行的任何qs_id,有一个名为qsa_qs_id的列,因此,如果没有与JOIN中的ID匹配的行,我可以运行删除操作,但是我无法弄清楚如何将其放入我的WHERE
。
PSEUDO应该是
从t1,t2删除,所有具有匹配qs_id列的行都只有在t3没有剩余qs_id的行时才这样做。
答案 0 :(得分:1)
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);