如果参考表中包含特定字段,则将表与参考表进行比较并更新值

时间:2012-04-28 01:35:43

标签: sql ms-access

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

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

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

我正在Access中编写一个更新查询来检查表A中的个体,看它们是否列在表B中,并更新A中的字段以指示它们是否列在表B中。我正在使用如果两个表中的姓氏和名字相同的标准,则匹配就足够了。问题是名称字段表A可能包含不在引用表B中的附加信息(例如标题或凭证),参考表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。

1 个答案:

答案 0 :(得分:0)

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

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

书挡" "的通配符指示Access在字段中的任何位置找到字符串" Like"参考文献,例如" JOHN"是在" JOHN M"将返回真实。您可能需要考虑仅指定第一个" ",具体取决于您的数据。