No.3ベストアンサー
- 回答日時:
自表や他表を利用したupdateやdeleteは、RDBMSによる仕様差が多い部分です。
MySQLの場合は、次のような書き方ができます。
(削除対象の表名は、他表との結合のためにも使うので、2箇所で出てきます)
-- 例1
delete t1
from t1 inner join t2 on t1.c1=t2.c1
;
-- 例2
delete t1
from t1,t2
where t1.c1=t2.c1
;
-- 例3
delete from t1
using t1,t2
where t1.c1=t2.c1
;
http://dev.mysql.com/doc/refman/5.1/ja/delete.html
この回答への補足
chukenkenkou様
アドバイスを頂き、有難うございます。
上記の内容とURLを参考に実行したら、
できるようになりました。
有難うございました。
No.2
- 回答日時:
あっと、deleteの解説を十分読んでなかった。
4.0以降は、結合(join含む)で複数table指定可能になってるのか。問題は、on じゃなくてwhereで指定しないとtruncate(全行削除)になるってことだね。
この回答への補足
hrm_mmm様
アドバイスを頂きまして、有難うございます。
教えて下さった構文を実行してみたところエラーとなりました。
以下エラー
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE field01 IN ( SELECT tbl_B.field01 FROM tbl_B' at line 1
何処がおかしいのでしょうか?
よろしくお願いします。
DBバージョン:Mysql5以降です
No.1
- 回答日時:
join 構文は、select構文内でしか使えないと思ったけど、エラーも出さずに無視して実行しちゃうとは、deleteって危険な構文ですね。
とりあえず、mysql4.1以降でサブクエリが使えるなら、where条件にサブクエリを書けば出来そうです。
delete from tbl_A
where field01 IN (SELECT tbl_B.field01 FROM tbl_B);
4.0以前だと、delete構文に関しては、1クエリでは無理です。
参考URL:http://dev.mysql.com/doc/refman/4.1/ja/Rewriting …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAチェックボックスで有効無効切り替えできるように 5 2022/10/21 16:13
- Visual Basic(VBA) VBA チェックボックスの設定について 1 2022/10/24 10:27
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- PHP PHPSpreadsheetを使って関数を繰り返し埋め込みたい 1 2023/05/24 11:33
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワークテーブルなのに自動で削...
-
Excel テーブル内の空白行の削除
-
トリガって、自分自身のテーブ...
-
条件付DELEATE文について
-
大量のレコードを削除する方法
-
削除フラグってどうなんでしょう?
-
レコードの削除で delete from ...
-
HiRDBのPURGEとDROPの違い
-
列のDEFAULT設定を削除するコマ...
-
連番をふり直した後の文字の桁...
-
アクセスのクエリでレコード削...
-
Accessでデータシートに同じデ...
-
他のデータベースとのテーブル結合
-
SELECT 文の NULL列は?
-
一つ前に戻るには…
-
Accessのテーブルデータを一気...
-
テーブルリンク リンク元を知...
-
SQL*LoaderでCSVから指定した列...
-
テーブル名をカラムとして取得...
-
外部キーだけのテーブル(主キ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel テーブル内の空白行の削除
-
ACCESSのマクロでテーブルのデ...
-
ワークテーブルなのに自動で削...
-
トリガって、自分自身のテーブ...
-
アクセス2010について
-
大量のレコードを削除する方法
-
Access2000の削除クエリで消し...
-
HiRDBのPURGEとDROPの違い
-
アクセスのクエリでレコード削...
-
削除フラグってどうなんでしょう?
-
列のDEFAULT設定を削除するコマ...
-
テーブルが削除できない
-
CSVファイルから一括して削除す...
-
物理削除と論理削除、どっちが...
-
リレーションについて
-
マージレプリケーション
-
SQLSERVERで関数作成?
-
すべてのテーブル削除
-
レコードの削除で delete from ...
-
アクセス通貨型or数値型について
おすすめ情報