访问连接中的 SQL 查询,还需要在有新 REF 编号的位置附加 [重复]

Posted

技术标签:

【中文标题】访问连接中的 SQL 查询,还需要在有新 REF 编号的位置附加 [重复]【英文标题】:SQL query in access joins, need it to also append where there is a new REF number [duplicate] 【发布时间】:2015-08-16 09:36:26 【问题描述】:

我有两张桌子可以访问。更新很好,但我是否还可以在同一个查询中附加工作表中尚未包含的任何参考编号?

UPDATE [UPDATEtable tester2]

INNER JOIN [Update2 Linked]     ON      

  [UPDATEtable tester2].[REF]   = [Update2 Linked].[REF]

set  

  [UPDATEtable tester2].[NAMES]     = [Update2 Linked].[NAMES] 
, [UPDATEtable tester2].[AMOUNT]  = [Update2 Linked].[AMOUNT]

然后我的问题来自“追加”或插入任何新条目,其中 REF 编号尚未在 [UPDATEtable tester2] 中。我试图在上面的脚本下面添加以下内容但没有成功。它说缺少运营商?

INSERT INTO       [UPDATEtable tester2].[REF] , [UPDATEtable tester2].[NAMES] , [UPDATEtable tester2].[AMOUNT]  

SELECT  [REF] , [NAMES] , [AMOUNT]

FROM    [Update2 Linked]

WHERE [Update2 Linked].[REF] 

NOT IN 

(SELECT   [UPDATEtable tester2].[REF]   FROM    [UPDATEtable tester2])

问候,

【问题讨论】:

【参考方案1】:

对于您的第一项,不,您不能在同一查询中组合更新和追加过程。您可以预先使用宏或 VBA 对 DLookup [REF] 值进行处理,然后在逻辑上决定更新或追加操作。

至于你的查询问题,在 SQL INSERT INTO 语句中,你只需指定表名,然后在括号中列出字段:

INSERT INTO [UPDATEtable tester2] ([REF], [NAMES], [AMOUNT])
SELECT [REF], [NAMES], [AMOUNT]
FROM [Update2 Linked]
WHERE [Update2 Linked].[REF]
NOT IN
  (SELECT [UPDATEtable tester2].[REF] 
   FROM [UPDATEtable tester2]);

或者,为了避免使用 IN 子查询,您可以使用 LEFT JOIN Null 版本:

INSERT INTO [UPDATEtable tester2] ([REF], [NAMES], [AMOUNT])
SELECT [Update2 Linked].[REF], [Update2 Linked].[NAMES], [Update2 Linked].[AMOUNT]
FROM [Update2 Linked]
LEFT JOIN [UPDATEtable tester2]
  ON [Update Linked].[REF] = [UPDATEtable tester2].[REF] 
WHERE [UPDATEtable tester2].[REF] Is Null;

【讨论】:

谢谢@Parfait。我看到答案已经关闭。我有类似的东西,我在 S/O 的其他地方找到了左连接方式。唯一不同的是第二行“SELECT DISTINCT A.[REF], A.[NAMES], A.[AMOUNT]” @gord 汤普森,感谢您的链接。我不知道什么是更新插入!

以上是关于访问连接中的 SQL 查询,还需要在有新 REF 编号的位置附加 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

openfire怎么实现androi推送 还需要用到哪些东西

仅在有新邮件到达时接收 Gmail 推送通知

如何将在左连接中具有连接的 sql 转换为查询构建器?

sql链接查询

为啥 Dapper 在有/没有迷你分析器连接的情况下为 Postgres 生成不同的 SQL

MySQL - 一个案例就明白多表连接的原理