ユーザーはそれを自分で PHP に統合します。複数のテーブルのデータを削除したり、関連するデータを削除するには、MYSQL のクエリ
削除を使用しないでください。
MySQL でデータを削除する方法は数多くありますが、最も一般的に使用されるのは、delete を使用してレコードを削除する方法です。以下に、単一のレコードを削除する場合と、複数のテーブルに関連付けられたデータを削除する場合の簡単な例をいくつか紹介します。
1. t1 where 条件から削除
2. t1 where 条件から t1 を削除します
3. t1,t2 の条件から t1 を削除します
4. t1,t2 の条件から t1,t2 を削除します
最初の 3 つは実行可能ですが、4 番目は実行できません。
つまり、単に delete ステートメントを使用するだけでは複数のテーブルからデータを削除することはできませんが、カスケード削除を作成して 2 つのテーブル間にカスケードを確立することはできます
リレーションシップを削除すると、あるテーブルのデータを削除するときに、別のテーブルの関連データも同時に削除できます。
1. データテーブル t2 の ID 値が一致するすべてのレコードをデータテーブル t1 から削除します
コードは次のとおりです
DELETE t1 FROM t1,t2 WHERE t1.id=t2.id または DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id
2. データテーブル t2 に一致しないレコードをデータテーブル t1 から見つけて削除します
コードは次のとおりです
DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL または
t1 から削除し、t1 を使用して左に結合します。t1.id=t2.id で T2 を結合します。ここで、t2.id は NULL です
3. 2 つのテーブルから同じ記録データを見つけて、両方のテーブルのデータを削除します
コードは次のとおりです
t1,t2 を t1 から削除します。 t2 を左に結合します。 t1.id=t2.id WHERE t1.id=25
ここからt1とt2を削除する際のt1とt2はエイリアスにできないことに注意してください
例:
コードは次のとおりです
table_name から t1,t2 を t1 left として削除します table2_name を t2 として t1.id=t2.id に結合します
テーブル名.id=25
データ内で実行するのは間違いです(MYSQLのバージョンは5.0以上です、5.0でも大丈夫です)
上の文を
と書き換えます。
コードは次のとおりです
table_name、table2_nameをt1 leftとしてtable_nameから削除します table2_nameをt2 onとして結合します
t1.id=t2.id ここで table_name.id=25
データ内で実行するのは間違っています(MYSQLのバージョンは5.0未満ですが、5.0ではOKです
)
)
DELETE が関連データを削除し、カスケード削除を実装する方法
存在しない場合はテーブルを作成します `dcsmember`(
`id` int(3) auto_increment が null でない主キー、
`name` varchar(12) が null ではありません
`パスワード` varchar(40) が null ではありません
`電話番号` char(20),
`time` DATETIME が NULL ではありません、
`jifen` int(8) not null DEFAULT '20',
`email` varchar(40) NOT NULL,
`power` int(2) NOT NULL デフォルト '1'
)キャラクターセットgb2312";
存在しない場合はテーブルを作成します `sp`(
`spid` int(5) auto_increment が null でない主キー、
`spuserid` int(3) が null ではありません
`spname` varchar(12) が null ではありません
`spmoney` float(6) が null ではありません
`spopt` char(20) が null ではありません、
`spsay` varchar(50),
`sptime` 日付デフォルト '2008-10-01',
`spendor` TINYINT(1) DEFAULT '1',
インデックス ( `spuserid` )
)キャラクターセットgb2312";
コードは次のとおりです
$sqldel="dcsmember WHERE から削除 email='$value'";
今はメンバーテーブルからメンバーの情報を削除しています
、別のテーブルのメンバーの情報も削除する必要があります。dcsmember.ID は sp.spuserid に対応する外部コードです。
書き方
コードは次のとおりです
dcsmember d から d, s を削除します d inner join sp s on d.id = s.spuserid where d.email="xxxxxx"