[解決済み] MySQLで複数のテーブルから削除する方法
2022-07-28 07:03:52
質問
いくつかのテーブルから一度に削除しようとしています。私は少し研究を行い、そしてこれを思いつきました。
DELETE FROM `pets` p,
`pets_activities` pa
WHERE p.`order` > :order
AND p.`pet_id` = :pet_id
AND pa.`id` = p.`pet_id`
しかし、次のようなエラーが発生します。
Uncaught Database_Exception [ 1064 ]: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルをチェックして、'p' の近くで使用する正しい構文を確認してください。
pets_activities
pa...
クロステーブルの削除は初めてなので、未熟で今のところ行き詰まっています
私は何を間違えているのでしょうか?
どうすればよいのでしょうか?
を使う
JOIN
の中に
DELETE
という文があります。
DELETE p, pa
FROM pets p
JOIN pets_activities pa ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
または...
DELETE pa
FROM pets_activities pa
JOIN pets p ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
...からだけ削除するために
pets_activities
参照 この .
単一テーブルの削除で、参照整合性がある場合、他の方法があります。
EXISTS
,
NOT EXISTS
,
IN
,
NOT IN
といった具合です。 しかし、上のように、どのテーブルから削除するかを
FROM
句の前にエイリアスを置いてどのテーブルから削除するかを指定することで、いくつかのかなり厳しい状況をより簡単に切り抜けられます。 私はしばしば
EXISTS
を使うことが多いのですが、1% の場合はこの MySQL 構文に軍配が上がります。
関連
-
[解決済み] MySQLのプロセスリストを見つけ、それらのプロセスを終了させる方法は?
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLで特定のカラムの後に複数のカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
-
[解決済み】MySQLで2つの値の最大値を取得する方法は?
-
[解決済み】VARCHARからINTへのキャスト - MySQL
-
[解決済み】MySQLのテーブルから制約を削除する方法は?
-
[解決済み】カラムを変更し、デフォルト値を変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mysqlでインデックスに障害が発生する原因は何ですか?
-
MySQLインストールチュートリアル(Windows用)詳細
-
Mysqlのソート機能の詳細
-
Djangoマイグレーションエラー 外部キー制約を追加できない
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み
-
Unknown character set.を解決する。MySQLデータベースインポート時の'utf8mb4'エラーの解消
-
PostMan レポート エラー: 接続 ECONNREFUSED 127.0.0.1:port number
-
[解決済み] なぜ SQLAlchemy の count() は生のクエリよりずっと遅いのでしょうか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み] MySQLデータベースの名前を素早く変更する(スキーマ名を変更する)方法は?