0

内部結合を使用してテーブルを更新する方法に興味があります。次のステートメントを実行すると:

update tbl1 a
inner join tbl2 b using (id)
set a.val = b.val;

tbl1に一致しないのレコードはどうなりtbl2ますか? それらは単に更新されずにそのまま残されtbl1ますか? それらは削除されますか?

これを実行して答えを得ることができることはわかっていますが、これが舞台裏でどのように機能するかのメカニズムにも興味があり、誰かが私のためにこれを解明できることを望んでいました.

4

2 に答える 2

1

Q:tbl1に一致しないのレコードはどうなりtbl2ますか?

A:からの一致がないため、更新されませんtbl2。定義から、INNER JOIN両方のテーブルに少なくとも 1 つの一致がある場合、キーワードは行を返します。テーブルからレコードを削除できる唯一のキーワードはDELETEDML です。

于 2012-08-15T00:30:24.150 に答える
1

update ステートメントは tbl1 で動作しています。

結合は、tbl1 で更新する行を指定するフィルターを提供しています。

追加のボーナスとして、結合は列の値も提供しています。

update ステートメントは、テーブルから行を削除せず、削除することもできません。

于 2012-08-15T00:32:47.493 に答える