【问题标题】:MS Access join on wildcardMS Access 加入通配符
【发布时间】:2017-05-22 19:44:11
【问题描述】:

所以我有两个表,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 或超链接对象(Software.[Software Title] like "" & tblMaster.Title & "")。

【问题讨论】:

    标签: ms-access join wildcard


    【解决方案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]两次,有问题就调整。

    如果您可以使用内部联接,则可以只使用子查询。

    【讨论】:

    • 抱歉这么久才回来。我喜欢你的解决方案,但我仍然收到 Cannot join on Memo, OLE, or Hyperlink (Software.[Software Title]=A.[Software Title]) 错误
    • 现在尝试编辑的答案。它连接不同的字段,但它实际上比较了内部查询中的软件标题(括号之间)。如果这样不行,也请把表结构贴出来(每列的类型,截图或者写的)
    【解决方案2】:

    你可以试试这个:

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

    【讨论】:

    • 这是内连接,不是左连接
    • 是的,但没有请求来自 tblMaster 的字段。
    • 在问题中,选中的列是通用通配符,等于Software.*, tblMaster.*,即使没有请求来自tblMaster的字段,那些来自未加入的Software的字段也不符合where标准。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多