• ベストアンサー

「削除するレコードを含んだテーブルを指定してくださ

アクセスです。 DELETE T元テーブル.文字, T削除対象テーブル.文字 FROM T削除対象テーブル RIGHT JOIN T元テーブル ON T削除対象テーブル.文字 = T元テーブル.文字; このSQL文はどこがおかしいですか? T元テーブルとT削除対象テーブルで同じ文字があるのなら、T削除対象テーブルの文字のレコードを削除したいのですが、 この削除クエリを実行しようとすると 「削除するレコードを含んだテーブルを指定してください。」 とメッセージが出ます。 テーブルの指定はどこからどのように行えばいいのでしょうか? T削除対象テーブルを指定したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

参考URLでDELETE文の構成を見てみてください。 DELETEの次は通常テーブル指定するFROM句が来ると思います。 またレコードを削除したいテーブルの指定は1つだけかと思います。 なのでFROM句でJOINしているのがおかしいかと。 動作確認はしてないですが、自分が書くとすると。 DELETE FROM T削除対象テーブル WHERE T削除対象テーブル.文字 IN (SELECT 文字 FROM T削除対象テーブル INNER JOIN T元テーブル ON T削除対象テーブル.文字 = T元テーブル.文字 かな。 頑張ってください。

参考URL:
https://msdn.microsoft.com/ja-jp/library/office/ff195097.aspx
nbyadfnh
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.2

クエリのプロパティで「固有のレコード」を「はい」にして みて下さい。

nbyadfnh
質問者

お礼

ありがとうございました。

関連するQ&A

  • 削除するレコードを含んだテーブルを指定してください

    DELETE テーブルA.店名, メインテーブル.店名 FROM メインテーブル RIGHT JOIN テーブルA ON メインテーブル.店名 = テーブルA.店名 WHERE (((メインテーブル.店名) Is Null)); というSQL分で、メインテーブルにないけど、テーブルAにはある、店名を削除しようとしたら、 「削除するレコードを含んだテーブルを指定してください。」 となってしまいます。 実際は30レコードくらいあります。 なぜ、削除できないのでしょうか?

  • テーブル2の単語の行を削除にはどうすればいい?

    アクセスです。 テーブル1には、tango テーブル2には、単語 というフィールドがあります。 テーブル1とtangoとテーブル2の単語を線で繋いで テーブル1のtangoと同じ値のテーブル2の単語の行を消したいのですが どういうクエリを作ればいいのでしょうか? 画像の状態 DELETE [テーブル1].tango, [テーブル2].単語 FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].tango = [テーブル2].単語; をやろうとすると 削除するレコードを含んだテーブルを指定してください となります。 「削除するレコードを含んだテーブル」は、テーブル2なのですが どこでテーブル2と設定すればいいですか? プロパティシートを見ても、テーブルを設定する場所がわかりませんでした。 レコードの削除に、 Whereとfromがありますが fromは選択できません。 この状態で、テーブル2の単語の行を削除にはどうすればいいですか?

  • すべてのテーブルのすべてのレコードを削除する方法

    データベースを扱うプログラムに対してユニットテストを行いたいと思っています。 それぞれのテストが終了するごとにすべてのテーブル内のすべてのレコードを削除したいのですが、 delete from table_a; delete from table_b; delete from table_c; ... のように書くと、外部キー制約に引っかかってしまい削除できないことがあります。 短いSQL文で複数のテーブル内のレコードをすべて削除する方法はないのでしょうか? よろしくお願いします。 ちなみに、私が現在使っているDBMSはPostgreSQL 8.1です。

  • 異なるテーブルのレコード削除

    オラクル初心者です。宜しくお願いします。 AAA、BBB、CCCというテーブルがあると仮定します。 画面から入力された値(ddd)をキーとして、CCCテーブルから該当するレコードをセレクト文で引っ張り、eeeという値を抜き出したとします。 そのeeeという値をキーにAAA、BBBテーブルのレコードを削除するにはどういうSQLを発行すればよろしいでしょうか? "delete from AAA, BBB where eee = (select eee from CCC where fff = ddd);" では駄目でした。 質問が下手でわかりにくいかもしれませんが、どうかご教授お願いします。

  • 2つのテーブルで重複する値のレコードを削除したい

    削除クエリ?重複クエリ?について教えてください。 テーブル1 フィールド"番号"には 1 2 3 テーブル2 フィールド"番号"には 3 4 5 があるとします。 「テーブル2と重複しているテーブル1のレコードを削除する」 (この場合「3」が重複しているのでテーブル1の3が入力されているレコードを削除) としたいのですがどいゆうSQL文を書けばいいのかわかりません。 ご教授よろしくお願いします。

  • ACCESSで指定されたテーブルから削除できませんでしたとエラー

    お世話になります。 似たような問題をググッてみたのですが、イマイチ解決に繋がらず、 最終手段と質問させて頂きました。 現在、ACCESS2007で削除クエリを作成していますが、 題名のエラーが表示されてしまいます。 ・テーブルAとBが存在します。 ・テーブルBのレコードを削除したいです。 ・削除条件は、テーブルAでSELECTした結果に対し、  テーブルAとテーブルBで一致するものを削除します。 ・A/B両テーブルともに主キーは設定されていません。 ・また、リレーションも張っていません。 ・データシートビューは想定したものが表示されます ・作成したSQLは以下のような感じです。 --------------------------------------------------- DELETE T2.* FROM T2, ( SELECT * FROM T1 WHERE T1.Fld1 = "01" AND T1.Fld2 = "002" AND T1.Fld3 BETWEEN #2008/4/1# AND #2009/3/31# AND (T1.Fld4 ="A" OR T1.Fld5 = "B") ) AS T1a WHERE T2.Fld1 = T1a.Fld1 AND T2.Fld2 = T1a.Fld2 AND T2.Fld3 = T1a.Fld3 --------------------------------------------------- 以上、解決策を伝授頂けないでしょうか? よろしくお願いします。

  • ACCESS2007でレコードの条件付き削除

    よろしくおねがいします。 テーブル [仕訳伝票]、[仕訳明細]に 仕訳IDで 前者が1、後者がN のリレーション設定しています。 [仕訳伝票]の仕訳日のフィールドが削除日以前のデータを削除するのに次のようにしました。 「仕訳明細クエリ」作成 ※添付画像を見てください DoCmd.RunSQL ("delete FROM 仕訳明細クエリ;")で 「 実行時エラー'3086' 指定したテーブルから削除できませんでした 」 因みに 「仕訳明細クエリ」を開いてDeleteキーで手動削除すると仕訳明細のレコードは削除できましたが仕訳伝票のレコードは残っています。

  • SQLiteで最も古いレコードのみの削除

    AndoroidでDBを使うのですが、考える動作のSQL文が作成できません。 テーブルTESTは以下のカラムを持ちます  ・ID - primary key not null  ・VALUE - not null テーブルTESTは最大で10件のレコードを保持します、11件目のレコードが発生したら 最も古い1件目のレコードを削除してから、11件目のデータを新しい10件目のデータとして テーブルに保存します。 そのために「最も古いレコード1件のみを削除する」というSQLを作成したいのですが、 考えたSQL文が正しくないと怒られてしまいます。 delete from TEST as A, (select * from TEST LIMIT 1)as B where A.ID=B.ID; この動作を1つのSQL文で行うのは不可能なのでしょうか?

  • 別テーブルからSELECTした値を持つ行を削除するSQLは?

    削除 SQL がわかりません。 SQL-1 SELECT id FROM table2 WHERE date_in IS NULL; これで取得したidを持つレコード(別テーブル)を削除したいのですが、 どうすれば組み合わさるのでしょうか? DELETE FROM table1 WHERE id=???

  • Mysql delete 参照

    恐れ入ります。 Mysql で、2つのテーブルがあり、 1つが1000レコード 2つめが1500レコードあります。 プライマリーコードを参照して、 1つめの1000レコードに、2つめのテーブルを揃えたいのですが、 うまくいきません。 delete from t2 left join t1 on t2.num=t1.num where t1.num IS NULL; としましたがうまくいきませんでした。 1つめのテーブルのレコードにマッチしたもの以外を2つめのテーブルから削除みたいな感じです。 よろしくお願いします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう