Microsoft Access 2016 - 需要使用 JOIN 组合 SQL 查询....在 Col1 上最喜欢 Col2

Microsoft Access 2016 - Need to combine SQL query using JOIN .... ON Col1 MOST LIKE Col2

我在 Microsoft Access 2016 中工作。我有一个包含数千行数据的数据 table [数据]。我有一个查找 table [查找],其中包含所有已知的项目 ID。这些 table 应该组合在项目 ID 上,这是一个字符串字段。通常,我会使用以下方式加入这些 tables:

SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] = [Lookup].[ProjectID]

问题是 [Data] 项目 ID 字段是一个比查找字符串长得多的字符串。举个例子

数据:

查找:

我尝试使用以下方法:

 SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*'

唯一的问题是查找 table 中有多个条目与数据字段“相似”。我需要能够加入不仅是“LIKE”而且在所有“LIKE”中长度最长的条目。

看来我确实需要调用一个“最像”的函数,但据我所知 SQL 语法中不存在该函数。

关于如何有效地加入这两个 table 有什么建议吗?

考虑:

SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*' 
WHERE Len(Lookup.ProjectID) = DMax("Len(ProjectID)", "Lookup", "'" & Data.ProjectID & "' LIKE ProjectID & '*'");

或者

SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*' 
WHERE Len(Lookup.ProjectID) = (
    SELECT Max(Len(Lookup.ProjectID)) FROM Lookup WHERE Data.ProjectID LIKE Lookup.ProjectID & "*");