MS Access加入通配符

时间:2017-05-22 19:44:12

标签: ms-access join wildcard

所以我有两个表,tblMaster和Software。

我想通过通配符连接加入这些表。我的表格格式如此。

tblMaster

|ID|Title                           |type|state|
------------------------------------------------
|1 |Adobe Reader                    |A   |Close|
|2 |Apache HTTP Server              |A   |Close|
|3 |Multiple Mozilla Products       |A   |Open |
|4 |Microsoft Windows File Handling |A   |Open |
|5 |Microsoft Windows Client Server |A   |Open |
|6 |HP Printer                      |A   |Open |
|7 |Adobe Acrobat                   |A   |Close|

软件

|SWID|Software Title    |location|
----------------------------------
|1   |Adobe Reader      |1|
|2   |Apache            |1|
|3   |Mozilla           |1|
|4   |Microsoft Windows |2|
|5   |HP                |3|

这是我的尝试:

SELECT * FROM Software
left Join tblMaster on Software.[Software Title] like "*" & tblMaster.Title & "*";

但是当我这样做时,我收到了这个错误:

无法加入备忘录,OLE或超链接对象(软件。[软件标题],如“”& tblMaster.Title&“”)。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

SELECT 
    Software.* 
FROM 
    Software,
    tblMaster
WHERE
    Software.[Software Title] Like "*" & tblMaster.Title & "*";

答案 1 :(得分:1)

您无法加入通配符,因此需要一点创造力:

SELECT * 
FROM Software
Left Join  (SELECT tblMaster.*, Software.[SWID] 
FROM tblMaster, Software 
WHERE [Software Title] LIKE "*" & tblMaster.Title & "*") 
AS A 
ON A.[SWID] = Software.[SWID]

首先链接所有可能的连接,然后实际连接字段。 它会报告[Software Title]两次,如果这是一个问题,请进行调整。

如果您对内部联接感到满意,则可以使用子查询。