如何从条件中删除2个表

时间:2016-01-12 17:14:45

标签: php mysql sql

我想构建一个查询来删除2个表中的数据,但是有些条件,比如如果cree_facture.refe ='EST1'从cree_devis中删除,那么cree_devis.refe ='EST1'并且如果refe ='INV1'从cree_facture与cree_facture.refe ='INV1'

我尝试用这个2查询问题删除表中没有条件的所有数据

DELETE FROM `cree_devis`, `cree_facture` 
USING `cree_devis`,`cree_facture` 
WHERE `cree_devis`.`cree_par` = `cree_facture`.`cree_par` 
  AND (`cree_devis`.`refe` = 'INV1'  OR `cree_facture`.`refe` = 'INV1' )

DELETE cree_devis, cree_facture 
FROM cree_devis 
INNER JOIN cree_facture ON (cree_devis.cree_par=cree_facture.cree_par)
WHERE cree_devis.refe = 'EST1' 
OR cree_facture.refe = 'EST1';

1 个答案:

答案 0 :(得分:0)

首先,您不能使用连接同时删除2个表。

你可能想要这个:

从CREE_DAVIS T1删除 T1.REFE =' EST1'   和EXISTS       (选择1          来自CREE_FACTURE T2         在哪里T1.CREE_PAR = T2.CREE_PAR           和T2.REFE =' EST1')

解释:从表1中删除在另一个表中存在与CREE_PAR匹配的行的每一行,而两者都有REFE =' EST1'

希望这就是你想要的。

现在,您还可以使用INV1并更改内部和外部查询中的表名,以相同的方式进行其他删除。