SQL - 从另一个 table 向 table 中的新列添加值
SQL - Adding values to new column in a table from another table
我正在学习处理数据库,我遇到了一个任务,即向现有 table 添加新列并使用另一个 table.
的值向该列添加值
我的table是
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 到 table 1. 使用 branch_code 将分支名称添加到新列。分支代码类似于 tables.
下面是我的代码,它抛出一个错误:单行子查询 returns 多于一行。请指教!
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
。
话虽如此,我强烈建议您不要这样做。当您查询 table 以获取分支名称时,您应该简单地使用 JOIN
。
要向现有 table 添加字段,您必须使用 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
);
我正在学习处理数据库,我遇到了一个任务,即向现有 table 添加新列并使用另一个 table.
的值向该列添加值我的table是
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 到 table 1. 使用 branch_code 将分支名称添加到新列。分支代码类似于 tables.
下面是我的代码,它抛出一个错误:单行子查询 returns 多于一行。请指教!
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
。
话虽如此,我强烈建议您不要这样做。当您查询 table 以获取分支名称时,您应该简单地使用 JOIN
。
要向现有 table 添加字段,您必须使用 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
);