sql - 如果表匹配,则将值附加到多值字段中
问题描述
我有两张桌子。一个主表和一个源表。在主表中,我有一个名为“已完成”的多值字段,其中包含 [Applied, Pledged, Transcripts]。我想要发生的是,如果主记录和源记录匹配,则将“承诺”附加到多值字段中。到目前为止,这是我的代码:
INSERT INTO Contacts ( Completed.[Value] )
VALUES ('Pledged')
FROM Source
WHERE Contacts.Email = Source.Email;
当我在 Access 上运行查询时,它告诉我“SQL 语句末尾缺少分号 (;)。我不确定我应该调整什么。感谢所有帮助!
解决方案
考虑使用 SELECT 子句而不是 VALUES 的 INNER JOIN 而不是 WHERE。
INSERT INTO Contacts (Completed.[Value])
SELECT 'Pledged' AS Data
FROM Source INNER JOIN Contacts ON Source.Email = Contacts.Email;
推荐阅读
- c# - 在基类构造函数中使用抽象类作为参数以在派生类中具有更具体的类型
- prolog - Eclipse CLP:最大约束/变量数
- angular6 - 条件在 PrimeNG 表行中不起作用
- node.js - 当我添加引用变量的控制台日志时,为什么我的 Google Cloud Function 会引发 CORS 政策问题?
- bash - 通过 shell 脚本在 CSV 文件中添加额外的小数位
- amazon-web-services - 如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板
- c - 如何实现 SHA512/256 OpenSSL?
- mysql - 从其他表中选择用户名,如果为 NULL
- android - androidx.lifecycle.DefaultLifecycleObserver 是否有可靠的方法来检测应用程序退出事件?
- php - 添加自定义块moodle时显示[[pluginname]]