Mysql 当列在两个表中具有条件时删除行

Mysql 当列在两个表中具有条件时删除行,mysql,Mysql,我有两张桌子,a桌和b桌。 我需要删除表_a中的所有行,如下所示,在and语句之前对我有效: etid是表a中的整数 最终输出: 您可以尝试下面的查询 DELETE M1 ,TABLE_A FROM M1 INNER JOIN TABLE_A M2 ON M1.ETID = M2.ETID AND M1.ID <> M2.ID WHERE M1.GID = 198 AND M1.ETID IN (SELECT NID FROM TABLE_B TYPE= 'product');

我有两张桌子,a桌和b桌。 我需要删除表_a中的所有行,如下所示,在and语句之前对我有效: etid是表a中的整数

最终输出:


您可以尝试下面的查询

DELETE M1 ,TABLE_A
FROM  M1
INNER JOIN TABLE_A M2 ON M1.ETID = M2.ETID AND M1.ID <> M2.ID
WHERE M1.GID = 198 AND M1.ETID IN (SELECT NID FROM TABLE_B TYPE= 'product');

您可以尝试下面的查询

DELETE M1 ,TABLE_A
FROM  M1
INNER JOIN TABLE_A M2 ON M1.ETID = M2.ETID AND M1.ID <> M2.ID
WHERE M1.GID = 198 AND M1.ETID IN (SELECT NID FROM TABLE_B TYPE= 'product');
您需要另一个表_b的联接:

您需要另一个表_b的联接:


样本数据和预期输出会有帮助。当然,现在准备样本数据和预期输出会有帮助。当然,现在准备样本数据和预期输出我想这是我缺少的,另一个加入,谢谢我想这是我缺少的,另一个加入,谢谢
+-----+------+---------+-----+
| id  | etid |  title  | gid |
+-----+------+---------+-----+
| 2   | 121  | Title2  | 55  |
| 3   | 120  | Title1  | 674 |
+-----+------+---------+-----+
DELETE M1 ,TABLE_A
FROM  M1
INNER JOIN TABLE_A M2 ON M1.ETID = M2.ETID AND M1.ID <> M2.ID
WHERE M1.GID = 198 AND M1.ETID IN (SELECT NID FROM TABLE_B TYPE= 'product');
delete m1 
from table_a m1 
inner join table_a m2 on m1.etid = m2.etid and m1.id <> m2.id
inner join table_b b on b.nid = m1.etid
where m1.gid = 198 and b.type = 'product'