banxi1988
2019-02-17 22:15:00 +08:00
根据我的理解给出一个使用纯 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)