【问题标题】:Problem with SQL and WHERE and INSERT INTO in MS ACCESSMS ACCESS 中的 SQL 和 WHERE 和 INSERT INTO 问题
【发布时间】:2021-09-09 15:06:46
【问题描述】:

我正在尝试将值从 Tab01 传输到 Tab02,条件是 Tab02 中不存在这些值。这些表有不同数量的列,这就是为什么我不能使用 Insert Into * 但我必须命名各个列。我的 SQL 语句是:

strsql = "INSERT INTO Tab02 (col01,col02,col04,col09)" & _
"SELECT Tab01.col01,Tab01.col02,Tab01.col04,Tab01.col09" & _
" FROM Tab01" & _
" WHERE NOT EXISTS (SELECT col01 From Tab01)"

如果没有 WHERE NOT EXISTS (SELECT col01 From Tab01) 最终一切正常,但在条件下没有任何反应。

正确的语法应该是什么?因此,如果(例如作为参考)Tab01.col01 值在 Tab02.col02 中不存在(请准确地使用适当的特殊字符...因为 sql 原谅众所周知的不仍然如此微小的错误!)谢谢!

【问题讨论】:

  • 也许:从 Tabl01 WHERE NOT col01 IN (SELECT col01 FROM Tab02)

标签: sql vba ms-access where-clause sql-insert


【解决方案1】:

使用IN 或相关子查询:

INSERT INTO Tab02 (col01, col02, col04, col09)
    SELECT Tab01.col01, Tab01.col02, Tab01.col04, Tab01.col09
    FROM Tab01
    WHERE NOT EXISTS (SELECT 1
                      FROM Tab01
                      WHERE Tab01.col01 = Tab02.col01
                     );

【讨论】:

  • 不起作用。我得到一个要求输入字段内容的输入字段!
  • @Jasco 。 . .这表明您引用的列之一并不是真正的列。检查你的拼写。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
相关资源
最近更新 更多