我有一个 MySQL 表,包含2553个小说信息(如作者,年份等),另一个表包含1059个作者(带有传记信息)。
现在,第二个表中的作者是第一个表中小说的作者。我想从第二个表中为第一个表中的作者分配相同的id。
我该怎么办?我已经尝试过这样做但没有成功。
这就是'小说'表应该如何(目前还没有author_id 列)
__ _____ ______ _________
|id|title|author|author_id|
|0 |xyz |John |0 |
|1 |xyz2 |John |0 |
|2 |abc |Rob |1 |
|3 |qwer |Jeff |2 |
|4 |zxcv |Jeff |2 |
|_________________________|
这是'作者'表
__ ____ _____
|id|name|birth|
|0 |John|1956 |
|1 |Rob |1898 |
|2 |Jeff|1932 |
|_____________|
答案 0 :(得分:0)
您可以使用相关查询:
UPDATE novels n
set n.author_id = (SELECT a.id FROM authors a
WHERE n.author = a.name)
答案 1 :(得分:0)
您可以进行更新加入。
UPDATE novels INNER JOIN authors
SET novels.author_id=authors.id where novels.author=authors.name
之后您应该删除小说表中的作者列,因为它变得多余(当然假设所有作者都在authors表中正确表示)