![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
よろしくお願いします。
仮に、「Recent3Years」と「DB2015」という2つのテーブルがあるとします。
フィールドはどちらも同じ構成で、name (varchar), birthday (timestamp), tel (varchar) とします。
ここで、Recent3Years テーブルの中のレコードで、DB2015 テーブルの中にもあるレコードについては、Recent3Yearsから削除したいのです。条件は、name, birthday, telのすべてが一致することです。
*同姓同名、同じ誕生日、同じ電話番号の人が複数いる可能性は無視します。
次のようなクエリで重複データをSELECTすることはできますが、このSELECTされた結果を削除する方法がわかりません。
Select Recent3Years.name, DB2015.name, Recent3Years.birthday, DB2015.birthday, Recent3Years.tel, DB2015.tel from Recent3Years, DB2015 Where Recent3Years.name = DB2015.name AND Recent3Years.birthday = DB2015.birthdayame AND Recent3Years.tel = DB2015.tel;
単純な DELETE 構文では動作せず、調べたところ、サブクエリというものやジョインという技を使うようなのですが、見よう見まねで作ってみてもうまくいきません。上記のデータ構造で実際にクエリをどう書くのか、教えていただけませんでしょうか。
よろしくお願いします。
MySQL 5.7.14
Windows 7 64bit
No.1ベストアンサー
- 回答日時:
複数テーブル構文を使います。
https://dev.mysql.com/doc/refman/5.6/ja/delete.h …
DELETE Recent3Years
FROM Recent3Years, DB2015
WHERE Recent3Years.name = DB2015.name
AND Recent3Years.birthday = DB2015.birthday
AND Recent3Years.tel = DB2015.tel;
または
DELETE FROM Recent3Years
USING Recent3Years, DB2015
WHERE Recent3Years.name = DB2015.name
AND Recent3Years.birthday = DB2015.birthday
AND Recent3Years.tel = DB2015.tel;
できました!ありがとうございます。
Delete Recent3Years のあとに FROMをつなげてもう一方のテーブルを書けば良かったんですね。
助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- 英語 「~, such as, for example,~」例示表現を並べる意図について 2 2022/07/04 18:43
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- 英語 Outcomes were evaluated including survival rate an 2 2022/04/14 11:01
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【MYSQL】asでリネームしてwher...
-
sum()の出力結果順に並び替えを...
-
SQL文で右から1文字だけ削除す...
-
SQLの集計で「全て」の合計も表...
-
使うべきでない文字。
-
チェックボックスの項目をDBにi...
-
MySQL のデータからドロップダ...
-
【初歩】ラジオボタンをつかっ...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
アクセスでレポートの1印刷内...
-
select insertで複数テーブルか...
-
Excelで、改行がある場合の条件...
-
レコードが存在しなかった場合
-
SELECTの結果で同一行を複数回...
-
GROUP BYを使ったSELECT文の総...
-
DataGridViewの内容をDBに反映...
-
ファイル書込みで一行もしくは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文で右から1文字だけ削除す...
-
【MYSQL】asでリネームしてwher...
-
使うべきでない文字。
-
割合(パーセント)を求めるに...
-
チェックボックスの項目をDBにi...
-
カウント結果を1レコードの中...
-
SQLの集計で「全て」の合計も表...
-
月別、販売員別の集計がわかり...
-
sum()の出力結果順に並び替えを...
-
MySQLで MAX()とGROUP BYを使う...
-
【初歩】ラジオボタンをつかっ...
-
何にかが違うから エラーなんで...
-
複数の表の条件でのDELETE文
-
replaceした上でwhere
-
LIKE述語/SQLとPHPを使った検...
-
今週の日曜日から土曜日までの...
-
重複が
-
MySQLにて特定レコードのみを抽...
-
MySQLで2つのテーブルのデータ...
-
phpmyadminはトリガーやIF文を...
おすすめ情報