Mysql 当列在两个表中具有条件时删除行
我有两张桌子,a桌和b桌。 我需要删除表_a中的所有行,如下所示,在and语句之前对我有效: etid是表a中的整数 最终输出: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');
您可以尝试下面的查询
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'