0

我在 Microsoft Access 2007 数据库中有两个表。

其中之一的列“名称 1 和名称 2”有 2000 条记录。另一个表有更多信息:它有两列名为“code1 & code2”,有 3000 条记录。每个名称都有一个代码意味着每个名称都有一个代码存储在第二个表中的列代码 1 中。

我想制作一个表或查询,显示名称 1 和名称 2 以及第二个表中的特定代码 1 和代码 2。

它必须只有 2000 条记录

例子 :

表 1:

name-1      name-2
-----------------------------
Abacavir    Digoxin
Amprenavir  Aspirin

表 2:

code-1   drug1       
----------------
xy1      Abacavir 
xy2      Digoxin    
yxr1     Amprenavir 
uyv2     Aspirin

样本输出:

name-1     code-1  name-2  code-2
-----------------------------------------
Abacavir   xy1     Digoxin  xy2 
4

2 回答 2

0

这个表结构设计得很糟糕,但我假设你会坚持下去。您必须创建一个将 Table2 连接两次的查询......对于您链接的每个关系一次。在我的测试中,我创建了一个访问数据库并将我的表命名为简单的 Table1 和 Table2,因此您可能需要稍微更改此查询以匹配您的表/列名称。

SELECT Table1.name1, Table2a.code1, Table1.name2, Table2b.code1
FROM (Table1 LEFT JOIN Table2 AS Table2b ON Table1.name2 = Table2b.drug1) LEFT JOIN Table2 AS Table2a ON Table1.name1 = Table2a.drug1;
于 2013-11-10T01:37:29.090 回答
0

第一个有 2K,第二个有 3K 的事实是一个线索。尝试在 SQL 语句中添加 'Distinct' 键: SELECT DISTINCT Table1.name1, Table2a.code1, Table1.name2, Table2b.code1 FROM (Table1 LEFT JOIN Table2 AS Table2b ON Table1.name2 = Table2b.drug1) LEFT JOIN Table2 AS Table2a ON Table1.name1 = Table2a.drug1;

否则我认为弗兰克成功了。

于 2013-11-11T14:29:40.853 回答