【问题标题】:Access Append Query compare with table访问追加查询与表比较
【发布时间】:2018-12-04 12:31:53
【问题描述】:

我目前正在重建一个杂乱无章的Access数据库,我遇到了以下问题:

我有一个设施表,其中包含一个名为区域的行。这些行包含一个链接到另一个表的数字,该表仅包含地区的数字和名称。我添加了一个查找列,其中显示了该地区的名称。

我现在想根据旧行中的数据更改每一行的新列。

设施

NAME|..|DISTRICT_OLD
A   |..|           1
B   |..|           2
C   |..|           1
...

地区

ID|NAME
1 |EAST
2 |WEST
...

我想要以下内容: 设施

NAME|..|DISTRICT_OLD|DISTRICT
A   |..|           1|EAST
B   |..|           2|WEST
C   |..|           1|EAST
...

地区字段(查找)获取其数据如下SELECT [DISTRICTS].ID, [DISTRICTS].NAME FROM DISTRICTS ORDER BY [NAME];

(感谢 Gordon Linoff)我可以得到查询,但现在我在插入时遇到了困难。我可以得到我想要的数据:

SELECT [DISTRICTS].NAME FROM Facilities INNER JOIN DISTRICTS ON Facilities.DISTRICT_OLD = [DISTRICTS].ID;

如果我尝试 INSERT INTO Facilities(DISTRICT) 它会显示 Typerror。 如何修改数据以与查阅列兼容? 我想我也需要选择 ID,这不是问题,但是错误会显示到很多列。

希望我没有记错任何名字,我的 Access 没有运行英语。

你能帮帮我吗?

法比安

【问题讨论】:

  • 提示:INNER JOIN.

标签: sql ms-access sql-insert


【解决方案1】:

查找列是数字(长整数)

对于关系数据库,您只需要包含 ID 的单列(因为您总是通过查询查找 District.name)所以:

INSERT INTO Facilities(DISTRICT) SELECT 4

其中 4 是您想要的查找表中记录的 ID,或者更好:

INSERT INTO Facilities(DISTRICT) 
    SELECT ID FROM DISTRICTS 
        where District.Name = "Name you want the ID for"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    相关资源
    最近更新 更多