2016-04-18 4 views
0

をフルに参加使用して行を削除します:SQLは、私は現在、一人のユーザーが持っている<code>Product</code>店の製品で<code>User</code>店舗内の各行は、ユーザに関する情報、および各列2つの私のデータベース内のテーブル、<code>User</code>と呼ばれる1、および他の<code>Product</code>を、持っている

​​

ユーザーは、主キーUsernameを持っており、製品は製品におけるUsernameitem_name、およびUsernameもユーザーにUsernameを参照する外部キーである主キーを持っています。

実行時に、ユーザーとこの特定のユーザーに関連するすべての製品の両方を削除する結合クエリを使用しようとしています。今、私はPHPで2つの別の作業クエリを持っています:

"DELETE from User where Username='$username'"; 
"DELETE from Product where Username='$username'"; 

私は同じ目標を達成するためにこれらの2つのクエリを組み合わせることができる方法はありますか?ありがとう。

+2

[複数のテーブルから一度に行を削除]の可能な複製(http://stackoverflow.com/questions/7653837/deleterows-from-multiple-tables-at-once) – JNevill

+0

@ JNevillありがとうございました。 – fittaoee

答えて

0

いいえ、1つのコマンドで2つのテーブルから同時に削除することはできません。文書へのリンクは次のとおりです:http://dev.mysql.com/doc/refman/5.7/en/delete.html

あなたができることは、外部キー制約を通してカスケード削除を設定することです。 Productテーブルに外部キー参照がある場合にユーザーを削除すると、その行も自動的に削除されます。 1つのコマンドで両方を削除するという目的を達成しますが、結合ではなく制約で行うことになります。 http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html