繁体   English   中英

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

[英]SQL - Adding values to new column in a table from another 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

我需要在表1中添加新列book_returned_branch。使用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
    );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM