0

我有两个表类别和子类别我正在尝试使用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' ";

此查询仅从 category(t1) 中删除其主键用于 subcategory(t2) 表的行。

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

4

2 回答 2

2

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

是公认的答案

于 2012-09-28T07:10:18.740 回答
2

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

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

于 2012-09-28T07:12:15.660 回答