在php中使用mysql从两个表中删除

时间:2012-09-28 07:05:37

标签: php mysql

我有两个表类别和子类别 我正在尝试使用mysql查询

从此表中删除记录

查询是=

$sql="Delete t1, t2 From category as t1 
       INNER JOIN  subcategory as t2 on t1.c_id = t2.c_id
       WHERE t1.c_id='$del_c_id' ";

此查询仅删除其主键用于子类别(t2)表的类别(t1)中的行。

不删除未在子类别(t2)中使用主键的类别(t1)中的行。

2 个答案:

答案 0 :(得分:2)

在mysql中尝试CASCADE选项。如果删除类别,子类别将自动删除。您需要使用InnoDB存储引擎才能使用此功能。

Here是接受的答案

答案 1 :(得分:2)

您需要使用LEFT JOIN而不是INNER JOIN。根据定义,LEFT JOIN返回t1的所有结果,即使它们在t2中没有匹配。

有关联接类型的更多信息,请参阅此链接: http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html