MS Access SQL查询创建

时间:2013-01-14 00:37:23

标签: sql ms-access

我在附加的数据库文件中看到了两个表(我附加了一个旧的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

1 个答案:

答案 0 :(得分: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