SQL - 将值添加到表中另一个表中的新列



我正在学习处理数据库,我遇到了一个任务,将新列添加到现有表中,并使用另一个表中的值向该列添加值。

我的桌子是

table_1                          table_2
branch_code| book_id             branch_branch_code| branch_name
100| 1                                  100| Carnegie
101| 2                                  102| Reservoir
102| 3                                  103| JOLIMONT

我需要添加新列,book_returned_branch表 1。使用 branch_code 将分支名称添加到新列。分支代码与这两个表类似。

下面是我的代码,它抛出了一个错误:单行子查询返回多行。请指教!

UPDATE TABLE_1 
SET BOOK_RETURNED_BRANCH = 
(SELECT BRANCH_NAME FROM TABLE_2 A
JOIN TABLE_2 B ON A.BRANCH_CODE = B.BRANCH_BRANCH_CODE
WHERE BRANCH_CODE = (SELECT BRANCH_CODE FROM TABLE_2));

您可以使用相关的子查询来执行此操作:

UPDATE TABLE_1 
SET BOOK_RETURNED_BRANCH = (SELECT BRANCH_NAME
FROM TABLE_2 t2
WHERE table_1.BRANCH_CODE = t2.branch_branch_code
);

子查询中不需要JOIN

话虽如此,我强烈建议你不要这样做。 查询表以获取分支名称时,只需使用JOIN

要将字段添加到现有表,您必须使用alter table。请尝试以下代码:

alter table table_1 add BOOK_RETURNED_BRANCH varchar(150);
update
table_1
set
BOOK_RETURNED_BRANCH =
(
select
branch_name
from
table_2
where
table_1.branch_code = table_2.branch_branch_code
);

相关内容

最新更新