0

2 つのテーブル カテゴリとサブカテゴリがあります。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) から行を削除しません。

4

2 に答える 2

2

mysqlでCASCADEオプションを試してください。カテゴリを削除すると、サブカテゴリは自動的に削除されます。この機能を使用するには、InnoDBストレージエンジンを使用する必要があります。

これが受け入れられた答えです

于 2012-09-28T07:10:18.740 に答える
2

INNER JOIN の代わりに LEFT JOIN を使用する必要があります。定義により、LEFT JOIN は、t2 に一致がない場合でも、t1 からのすべての結果を返します。

結合タイプの詳細については、次のリンクを参照してください: http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

于 2012-09-28T07:12:15.660 に答える