如何解决更新表以添加新列并通过LEFT JOIN设置值
我有一个表R,该表的一部分有一个列C。我有另一个表T,它的列C也具有相同的类型并指向相同的变量。
我想在C上的R和T之间执行一个LEFT JOIN,以便我返回R的全部内容,但要从T中返回D列,即
SELECT R.*,T.D
FROM R LEFT JOIN T
ON R.C = T.C
注意-此处的LEFT JOIN用于我只想将T中的行与T中存在的R匹配,而当R中不存在时,我想要一个NULL值。
现在,我希望返回的查询是R的新定义。即
注意-以下是伪代码。
R = (
SELECT R.*,T.D
FROM R LEFT JOIN T
ON R.C = T.C
)
我尝试的方法如下:
CREATE TABLE "R" AS
SELECT R.*,T.D
FROM R LEFT JOIN T
ON R.C = T.C
这会产生一个错误。似乎SQL(此处使用的是SQLite)不允许这种重新分配。
我不确定如何进行-有人知道实现此目标的方法吗?
解决方法
您可以添加新列并为其分配值:
alter table r add column d <type>;
然后您可以填充它:
update r
set d = (select t.d from t where t.c = r.c);
但是,视图似乎更有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。