0

如果关键字出现在另一个参考表中,我有两个表需要比较和更新一个表中的值。

A是一个数据表,其中包含个人列表,其中姓氏和名字具有单独的字段。

B是另一个参考表,其中包含已定义的具有姓氏和名字的个人列表。

我正在 Access 中编写一个更新查询来检查表 A 中的个人以查看他们是否列在表 B 中并更新 A 中的一个字段以指示他们是否列在表 B 中。我使用的条件是如果两个表中的姓和名相同,则匹配就足够了。问题是名称字段表 A 可能包含不在参考表 B 中的附加信息(例如标题或凭据),该表仅列出了名字和姓氏。我无法控制表 A 中的数据,但需要尽可能根据类似标准进行连接。

我不确定如何在 SQL 中表达以下内容。我希望下面的伪代码能解释我想要完成的事情:

UPDATE A
    SET A.[isinB]=true
WHERE

A.[lastname] contains B.[lastname]
and
A.[firstname] contains B.[firstname]

例子:

A.[lastname] = SMITH MD PHD
A.[firstname] = JOHN M

B.[lastname] = SMITH
B.[firstname] = JOHN

在此示例中,我希望将其视为匹配项,并将 A.[isinB] 设置为 true。

4

1 回答 1

0

在 Access 中,您可以进行通配符比较:

UPDATE A SET A.[isinB]=true
WHERE
B.[Firstname] Like "*" & A.[Firstname] & "*" AND B.[Lastname] Like "*" & B.[Lastname]

书挡“ ”的通配符指示 Access 在“喜欢”引用的字段中的任何位置查找字符串,例如。“JOHN”在“JOHN M”之内将返回真。您可能需要考虑仅指定第一个“ ”,具体取决于您的数据。

于 2012-04-28T02:02:02.920 回答