誰かが助けてくれることを願っています...
私は魚の漁獲量を含み、各釣り人の個人的なベストを記録する2つのテーブルを持っています。私が今やったことは、増え続けるリストにさらに多くの種を追加することです。
これで、古いデータベース(catches_old)をバックアップし、新しいテーブル(catches)を作成しました。
キャッチでは、すべての種がゼロに設定されています。
一意のレコードを取得する唯一の方法は、FishNameとAnglerを一緒に使用することです。
必要なのは、重みがゼロより大きいかどうか、つまりレコードがあるかどうかを確認するための単純なコードです。次に、古い詳細でレコードを更新します。
私は複数の方法を試しましたが、惨めに失敗しました。
テーブルOld(Specie、FishNm、Position、Fisherman、lb、oz、dr、Drams、PegName、Date)テーブルNewは同じです。
テーブルOldには-キャッチからの古いレコードが含まれます。新しいテーブルは基本的に、キャッチする魚の名前が追加されたすべてのレコードのリセットです。
テーブルNewにはすべての魚の名前が含まれ、0ドラムにリセットされます。
Table Oldは、過去の漁獲量の漁獲記録でTableNewを更新する必要があります。古いテーブルでまだキャッチされていないキャッチは、転送する必要はなく、古いキャッチだけです。
サンプルデータ-(正確なドラム計算ではありません笑)
Carp - Wobbles - 2 - David Williams - 12 - 4 - 6 - 897 - Willow Island - 21/05/1999
Carp - Fanta - 1 - David Williams - 14 - 7 - 9 - 900 - Bay of Dreams - 14/05/2004
Goldfish - Harry - 1 - Fred Ball - 1 - 1- 2 - 258 - Willow Island - 12/05/2010
Goldfish - Whipper - 2 - - 0 - 0- 0- 0- -
Goldfish - Harriet - 3 - David Williams - 0 - 15 - 2 - 251 - The Fair - 23/09/2012
新しいコード-2つの一意のフィールドに内部結合を使用します。失敗しているので、これは問題なく動作するはずですか?
UPDATE NewTable
INNER JOIN OldTable
ON NewTable.Fishname = OldTable.Fishname AND NewTable.Angler = OldTable.Angler
SET NewTable.Weight = OldTable.Weight