【发布时间】:2017-07-25 14:57:51
【问题描述】:
这个问题已经在 stackoverflow 上被问过多次,但他们似乎都超过一年了,所以我想我会再问一次,以防有更新。
correlated update 是一个更新语句,它根据另一个表中的值更新一个表中的所有行,同时将两个表链接在一起。
从SQLAlchemy docs,我们可以轻松地进行相关更新,但只能在单个列上:
update(foo).values(bar=select([foobar.c.bar]).where(foobar.c.id == foo.c.id))
这翻译成:
UPDATE foo
SET bar = (
SELECT bar
FROM foobar
WHERE foobar.id = foo.id
)
我们如何在 sqlalchemy 中使用多个列编写相关更新?例如:
UPDATE foo
SET (bar, baz) = (
SELECT bar, baz
FROM foobar
WHERE foobar.id = foo.id
)
【问题讨论】:
标签: python python-2.7 sqlalchemy correlated-subquery