私はテーブル「プレーヤー」と「賞」を持っています。IDが異なるが、それ以外は同じ情報を持つ重複したプレーヤーエントリがいくつかあります。
2番目のプレーヤーのエントリに関連付けられているアワードを更新して、最終的に重複を削除できるようにしようとしています。
これは明らかに最も効率的なクエリではありませんが、実行する必要があるのは1回だけで、重複は10〜15個だけです。これまでのところ私はこれを持っています:
UPDATE aw
SET aw.player_id = map.id1
FROM awards as aw,
(SELECT a.id as id1, b.id as id2
FROM players a, players b
WHERE a.first_name = b.first_name
AND a.last_name = b.last_name
AND a.id != b.id
AND a.team is not null
AND a.college is not null) as map
WHERE map.id2 = aw.player_id
これにより、不特定の構文エラーが発生しますが、最初の2行を「Selectaw.player_id、map.id1」だけに置き換えると、期待値を持つ2列のテーブルが返されます(したがって、列名とテーブル参照はすべて正しいです) )。
明らかな何かが欠けているに違いありませんが、それは何ですか?