0

Microsoft Access 2007 データベースに 2 つのテーブルがあります。

そのうちの 1 つには、2000 レコードの列「name 1 & name 2」があります。もう 1 つのテーブルには、より多くの情報があります。「code1 & code2」という名前の 2 つの列があり、3000 レコードがあります。それぞれの名前にはコードがあるということは、すべての名前に、列コード 1 の 2 番目のテーブルに格納されているコードがあることを意味します。

name 1 & name 2 と 2 番目の table の特定の code1 & code 2 を表示する 1 つのテーブルまたはクエリを作成したいと考えています。

そして、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

最初に 2K、2 番目に 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 に答える
0

このテーブル構造はうまく設計されていませんが、あなたはそれに固執していると思います。Table2 を 2 回結合するクエリを作成する必要があります。リンクしているリレーションシップごとに 1 回です。私のテストでは、アクセス データベースを作成し、テーブルに単純な 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 に答える