【问题标题】:MS Access SQL query creationMS Access SQL 查询创建
【发布时间】:2013-01-14 13:48:06
【问题描述】:

您可以在附加的数据库文件中看到我有两个表(我附加了旧的 ms 访问文件 .mdb 和同一文件的新版本 .accdb)

一个表有一个数字主键字段和一个引用字段。

另一个表将引用(例如 1.1.1 或 1.1.2)作为主键字段。

我需要进行一个 sql 查询,它将在第一个表的字段中获取相应的引用,并从引用表中粘贴这些引用的描述。

例如,“TableToBeQueried”表的第一个条目是:

RecordID References
       1 1.1.1; 1.1.2

所以理论上 sql 查询会从引用表中返回 1.1.1 和 1.1.2 的引用描述,它们是:

This is the first reference
This is the second reference

下载:http://www.mediafire.com/?6ppbztsx82mvmal,ny93tln8f097jpp

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    TableToBeQueried 未标准化,这使您的问题更具挑战性。使用包含RecordIDParagraph 的每个组合的行的联结表会更容易:

    RecordID Paragraph
           1 1.1.1
           1 1.1.2
    

    但是,如果你坚持现有的,那是可以做到的。

    SELECT
        t.RecordID,
        t.Description,
        t.References,
        r.Paragraph,
        r.Description
    FROM
        TableToBeQueried AS t,
        [References] AS r
    WHERE
             '; ' & [t].[References] & ';'
        Like '*; ' & [r].[Paragraph] & ';*'
    ORDER BY
        t.RecordID,
        r.Paragraph;
    

    这适用于在 Access 应用程序会话中运行的查询(SQL89 模式)。但是,如果您使用 OleDb 从外部 Access(SQL92 模式)运行此查询,请将通配符从 * 更改为 %

    这些是该查询返回的前 2 行:

    RecordID t.Description References    Paragraph r.Description
           1 Description 1 1.1.1; 1.1.2  1.1.1     This is the first reference
           1 Description 1 1.1.1; 1.1.2  1.1.2     This is the second reference
    

    【讨论】:

    • 你太棒了。非常感谢你不知道这对我意味着什么!!如果我确实按照你的建议制作了一个接线表,你会怎么做,HansUp? @HansUp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多