1 つのステートメントで複数のテーブルから削除
P粉716228245
P粉716228245 2023-08-18 10:28:49
0
1
496
<p>MySQL を使用して、複数のテーブルから複数のレコードを一度に削除しようとしています。 最初はこれができると思いました: </p> <pre class="brush:php;toolbar:false;">t1、t2 を削除 FROM テーブル 1 t1 JOIN table2 t2 ON t1.id = t2.table1_id JOIN table3 t3 ON t1.id = t3.table1_id WHERE t1.id IN (?,?,?,?); <p>ただし、table2 に既存のレコードがない場合、<strong>JOIN</strong> を <strong>LEFT JOIN</strong> に変更する必要がありますか?また、8 つのテーブル (2x2x2x2x2x2x2x2) から 2 つまたは 3 つのレコードだけを削除すると、遅延が発生しますか? </p>
P粉716228245
P粉716228245

全員に返信(1)
P粉118698740

はい、table2 の結合を left join に変更すると、希望の効果が得られます。リストに属する table1 および table3 内の行は、table2 にも存在するかどうかに関係なく、削除されます。同時に、一致する可能性のある行も削除されます。

リーリー

table3joinexists 条件に書き換えることをお勧めします。これにより、特に table3(table1_id):

にインデックスがある場合、クエリの意図がより明確になり、パフォーマンスが向上する可能性があります。 リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!