django orm 更新 model 某个字段为该 model 中某个外键 mode 字段的值。
2
kingofvir OP 自顶
|
3
mayorbryant 2019 年 1 月 25 日
难道 A.author = A.b.name 就不优雅了吗
|
4
kingofvir OP @mayorbryant 主要是为了数据更新,这样几万条数据更新需要执行几万个 sql
|
5
banxi1988 2019 年 2 月 17 日
根据我的理解给出一个使用纯 SQL 的解法,你可以自行翻译成 Django ORM 的写法
针对如下表结构: ```sql CREATE TABLE `author` ( `id` INTEGER, `name` TEXT, PRIMARY KEY(`id`) ); CREATE TABLE `book` ( `id` INTEGER, `name` TEXT NOT NULL, `author_id` INTEGER, `author_name` TEXT, PRIMARY KEY(`id`) ); ```` `book.author_name` 是后面加的,要填充其关联的 author 的名称可以使用如下 SQL 语句更新。 ```sql update book set author_name = (select name from author where id = author_id) ``` 经过我使用 SQLite 测试是 OK 的。 > Query executed successfully: update book set author_name = (select name from author where id = author_id) (took 0ms, 3 rows affected) |