0
的随机行中复制数据我有两个表,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');
见http://sqlfiddle.com/#!17/313fb/1
我想随机值复制从nonsense
到stuff
。 SQL Server Copy Random data from one table to another:我可以用回答我刚才的问题单个值做到这一点
update stuff
set data=(select data from nonsense where stuff.id=stuff.id
order by random() limit 1);
不过,我想从同一行复制多个值(data
和more
),和子查询当然不会让我这样做。
我微软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使用类似LEFT JOIN LATERAL
代替OUTER APPPLY
,但简单地替代并不为我工作。
我怎么能与多个值从另一个表中的随机行更新?