これはAccessとは異なるデータベースでこれを試してみるとよいでしょう。その理由はなぜでしょうか。しかし、あなたが行くので、ここでは、Accessの質問:
だから我々は二回ミスターデントとMSマクミランが含まれ、このテーブルを持っている:
CREATE TABLE work (
division INT
, fips_county_code VARCHAR(3)
, last VARCHAR(10)
, suffix VARCHAR(3)
, first VARCHAR(6)
, title VARCHAR(16)
, birthdate DATE
);
INSERT INTO work VALUES(1,'UK' ,'Dent' ,'','Arthur','Earthling' ,'1957-08-02');
INSERT INTO work VALUES(1,'UK' ,'Prefect' ,'','Ford' ,'HH Guide Scout' ,'1925-04-01');
INSERT INTO work VALUES(1,'N/A','Beeblebrox','','Zaphod','Galaxy President','1857-09-13');
INSERT INTO work VALUES(1,'UK' ,'McMillan' ,'','Tricia','Astrophysicist' ,'1959-09-29');
INSERT INTO work VALUES(1,'UK' ,'Dent' ,'','Arthur','Earthling' ,'1957-08-02');
INSERT INTO work VALUES(1,'UK' ,'McMillan' ,'','Tricia','Astrophysicist' ,'1959-09-29');
私はあなたが各氏の両方の発生を削除したくないと仮定しますDentさんやMcMillanさん。しかし、そのうちの1通を残してください。
データベースとは独立して、2つの同一の行のうちの1つだけを削除することはできません。 (奇妙なことに、プライマリキーを用意する必要があります;あなたは動作するプライマリキーを持つ2つの同じ行を持つことはありません)。優れたデータベースで
、あなたの希望:
ALTER TABLE work RENAME TO work_with_dups;
CREATE TABLE work AS SELECT DISTINCT * FROM work_with_dups;
DROP TABLE work_with_dups;
しかし、あなたがアクセスして立ち往生しています。限られた可能性で上記のことを可能な限り模倣しようとお勧めします。
名前の変更はできません。また、CREATE TABLE ... AS SELECTは使用できません。それでは、最初のと同じ構造を持つ新しいテーブルを作成してみましょう、とwork
テーブルのすべてでそれを埋める:
CREATE TABLE work_with_dups(
division INT
, fips_county_code VARCHAR(3)
, last VARCHAR(10)
, suffix VARCHAR(3)
, first VARCHAR(6)
, title VARCHAR(16)
, birthdate DATE
);
INSERT INTO work_with_dups SELECT * FROM work;
は今、私たちは、元のテーブルをきれいに...
DELETE FROM work;
そして、我々は埋めますそれ以前にwork_with_dups
を保存するデだまさコンテンツを持つ:
INSERT INTO work SELECT DISTINCT * FROM work_with_dups;
そして最後に私たちは混乱を一掃:
DROP TABLE work_with_dups;
不器用な、しかし、それは動作します...
マルコ・セイン
あなたは、これまで何を試してみましたが、どのようなエラーあなたは得ていますか?また、テーブルがどのように見えているか、そして認識しているFKCがあるか分かっていれば、もっと簡単になるでしょう。 –
返されたすべてのレコードを削除しようとしていますか、それぞれの複製セットを残したいですか? – Stephen
@ LudvigRydahl私はDELETEサブクエリを作成しようとしました。だから私はもう働かないのでもう持っていない。 これは、databasename(サブクエリ)の結果で削除されただけです。 – rohanharrison