私は2つのテーブルstuff
とnonsense
を持っています。PostGresql:別のテーブルのランダムな行からデータをコピーする
create table stuff(
id serial primary key,
details varchar,
data varchar,
more varchar
);
create table nonsense (
id serial primary key,
data varchar,
more varchar
);
insert into stuff(details) values
('one'),('two'),('three'),('four'),('five'),('six');
insert into nonsense(data,more) values
('apple','accordion'),('banana','banjo'),('cherry','cor anglais');
私はnonsense
からstuff
にランダムな値をコピーしたいhttp://sqlfiddle.com/#!17/313fb/1
を参照してください。私は同じ行から複数の値(data
とmore
)をコピーしたいと思います、しかし
update stuff
set data=(select data from nonsense where stuff.id=stuff.id
order by random() limit 1);
、およびサブクエリ:SQL Server Copy Random data from one table to another:私は私の前の質問への回答を使用して単一の値のためにこれを行うことができますもちろん、私にそれをさせません。
私は、Microsoft SQL、私は次のように使用することができます。
update stuff
set data=sq.town,more=sq.state
from stuff s outer apply
(select top 1 * from nonsense where s.id=s.id order by newid()) sq
私は、PostgreSQLの代わりにOUTER APPPLY
のLEFT JOIN LATERAL
のようなものを使用しますが、単純に置き換えることは私のために動作しないことを読みました。
別のテーブルのランダムな行から複数の値を更新するにはどうすればよいですか?