我正在尝试合并 Microsoft Access 中的多个表以返回 LIKE 通配符值。但是,我希望它通过一系列事情来完成,而不仅仅是一个特定的项目。我有下表标记为“SomeData”
ID Fund TextFld Type1
2 Sewer COMP - DZ Docs
3 Sewer SEW: ZO Docs
我有第二个标有 GL 的表,我在其中查找 TextFld:例如,可能有:
COMP - ABC
COMP - DEF
SEW: GHS
SEW: XYZ
我输入SQL:
SELECT GL.Text, SomeData.Type1
FROM SomeData INNER JOIN GL ON SomeData.Fund = GL.Type
WHERE GL.Text LIKE SomeData.TextFld;
但是,这只会返回完全匹配项。我该怎么做才能找到任何类似的匹配项。
请注意这些会有很多行,所以我不能只使用任何东西,例如 LIKE "COMP*"OR "SEW*"
非常感谢您。任何帮助将不胜感激。
最佳答案
您的查询中没有通配符。 MS Access 中的通配符是星号,因此您的查询应如下所示:
SELECT GL.Text, SomeData.Type1
FROM SomeData INNER JOIN GL ON SomeData.Fund = GL.Type
WHERE GL.Text LIKE '*' & SomeData.TextFld & '*';
我从未在使用另一个表中的字段时使用过 LIKE 语句,但我相当确定语法是正确的。
注意:在此查询中,您将获取字段中任意位置存在 COMP
或 SEW
的任何记录。如果您希望它仅在字段开头找到时显示,则为:
WHERE GL.Text LIKE & SomeData.TextFld & '*';
同样,如果您希望它只匹配最后找到的位置:
WHERE GL.Text LIKE '*' & SomeData.TextFld;
关于sql - 多表 Access 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31421740/