同じ一意のキーを使用するが、同じ列を使用しない2つのテーブル(1つは小さい、もう1つは大きい)があります。
大きなテーブルから小さなテーブルに2つの列を移動する必要がありますが、小さなテーブルに存在するキーに対してのみです。
それに対してクエリを実行するときは、INNERJOINを使用します
SELECT * FROM my_bigtable AS big
INNER JOIN my_smalltable AS small ON big.key = small.key;
よく働く。しかし今、私は小さなテーブルに2つの列(fname、lname)を追加しました。大きなテーブルにはこれらの列があります。反映されたキーのこれらの列のエントリをプルして、小さなテーブルの列に配置します。
INSERT INTO my_smalltable AS small
SELECT FNAME,LNAME FROM my_bigtable AS big
WHERE big.FNAME = small.FNAME
AND big.LNAME = small.LNAME;
これは、小さなテーブルに存在する一意キーのレコードのみを小さなテーブルに移動しますか、それとも、一意のキーが小さなテーブルに存在するかどうかに関係なく、大きなテーブルから小さなテーブルにすべてを移動しますか?