別のテーブルからテーブル値を更新しようとしています。pstatus
から更新したいproductcode
。
これが私のコードです(エラーは発生せず、結果は0行になります):
UPDATE pstatus
SET code=(select code FROM productcode)
これに加えて、SQLで更新を再実行することはできません-エラーは発生しませんが、0行を返します(productcode
テーブルに5行以上あります)。
別のテーブルからテーブル値を更新しようとしています。pstatus
から更新したいproductcode
。
これが私のコードです(エラーは発生せず、結果は0行になります):
UPDATE pstatus
SET code=(select code FROM productcode)
これに加えて、SQLで更新を再実行することはできません-エラーは発生しませんが、0行を返します(productcode
テーブルに5行以上あります)。
updateステートメントは行を返しません。もっと似たようなものを使うべきだった
Update pstatus
Set code=a.code
from productcode a
where a.*somekeyfield* = *value*
更新の基礎として使用する製品コードの単一レコードを決定する必要があります。somekeyfieldがどうあるべきかは、あなたが決定する必要があるものです。
update ステートメントはレコードを追加せず、テーブルに既に存在するレコードのみを更新します。
update
クエリは実際にはテーブル内のすべてのレコードを更新しますが、レコードがないため、更新されたレコードの数はゼロです。
レコードを追加する場合は、insert
代わりにクエリを使用する必要があります。
insert into pstatus (code)
select code from productcode
この場合、2つの問題があります
テーブルにレコードがない場合、pstatusに行がないと言います。どうすればテーブル行を更新できますか?
あなたの内部クエリselect code FROM productcode
は複数の行を返します.SQLはどのようにどのフィールドに値を設定することを決定しますか?