加入是我永远无法理解的一件事,即使用哪种类型以及它们实际如何工作。我需要编写一个查询,我知道我需要加入它。
数据库是postgres。
基本表设置如下(一些细节已编辑)
rates (
rates_id Primary Key, Auto Increment
state String, can either be 'current' or 'history'
)
rates_records (
rates_records_id Primary key, auto increment
rates_id = integer
column_1,
column_2
)
每个rates_records
条目都将rates_id
设置为rates
表中存在的值
我想更新每个rates_records
行并修改相关column_1
column_2
rates
和state = 'current'
数据
我该怎么做?感谢
答案 0 :(得分:2)
替代斯特凡的回答。
update rates_records
set column_1 = 'foo',
column_2 = 'bar'
from rates
where rates.rates_id = rates_records.rates_id
and rates.state = 'current';
更多详细信息和示例在手册中:http://www.postgresql.org/docs/current/static/sql-update.html
您喜欢哪种格式基本上是品味问题。我不相信一个比另一个更好或更快(Stefan的答案是标准的SQL,所以它可以在DBMS中移植)。
答案 1 :(得分:0)
update rates_records set column_1 = 'this', column_2 = 'that'
where rates_records_id
in (select rates_records_id from rates_records rr
join rates r on rr.rates_id = r.rates_id where state = 'current')