【发布时间】:2019-04-02 17:57:18
【问题描述】:
我一直在努力解决我的问题,但不知道它有什么问题。我不是高级 SQL 用户,但对 SQL 有一定的了解。
我有两张表,我正在尝试使用另一张表中的字段更新一个字段。它们在每个中都没有唯一标识符,因此需要与三个字段(HoleID、From、To)匹配,尤其是因为表 LEAPFROG_Lithology 的 From/To 记录比 Lithology 表中的记录更多。
我已经寻找过类似主题的问题,并尝试了我的查询的不同变体,但没有任何工作,它总是要求我“输入参数值”。 我尝试使用像 one 和 one 这样的内部关节,但它不起作用。
这是我尝试过的:
版本 1
Update LEAPFROG_Lithology
SET LEAPFROG_Lithology.Primary_litho = (
SELECT Lithology.Primary_litho
FROM Lithology
RIGHT JOIN LEAPFROG_Lithology ON (
Lithology.[HoleID] = LEAPFROG_Lithology.[HoleID] and
Lithology.[From_m] = LEAPFROG_Lithology.[From_m] and
Lithology.[To_m] = LEAPFROG_Lithology.[To_m]))
Where LEAPFROG_Lithology.Primary_litho is null ;
第 2 版(也尝试使用 INNER JOIN)
Update LEAPFROG_Lithology
LEFT JOIN Lithology ON (
LEAPFROG_Lithology.[HoleID] = Lithology.[HoleID] and
LEAPFROG_Lithology.[From_m] = Lithology.[From_m] and
LEAPFROG_Lithology.[To_m] = Lithology.[To_m])
SET LEAPFROG_Lithology.Primary_litho = Lithology.Primary_litho
Where LEAPFROG_Lithology.Primary_litho is null ;
我在任何地方都尝试了 [ ],但没有。这没什么区别。
谁能告诉我我做错了什么? 谢谢!
【问题讨论】:
-
当您输入列名或表名时,您通常会收到该消息。它会给你它正在寻找的“参数”的名称吗?
-
您能否发布您的
LEAPFROG_Lithology和Lithology表/查询的屏幕截图? -
它要求哪个参数?而且只有一个弹出框?
-
@ArcherBird,它只要求我提供一个参数,“Lithology.Primary_litho”。
-
这实际上是一个错字……。 -_-"
标签: sql ms-access join sql-update subquery