2016-11-20 78 views
0

我有一个ms访问数据库,其中包含两个我关心的表。从表中的一个字段查询两个单独的字段

Table 1 
     ...[field 1] "Name" text 
     ...[field 2] "IDBorn" number 
     ...[field 3] "IDDied" number 
Table 2 
     ...[field 1] "IDDate" number 
     ...[field 2] "dtISO" text of date 

“IDBorn” 和 “IDDied” 都与 “IDDate”

我的问题。我可以查询(在一个查询中)获得

...[field 1] "Name" text 
...[field 2] "Born On" text of born on date 
...[field 3] "Died On" text of died on date 

我还没有能够获得成功的联合查询工作。这是要走的路吗?

+1

为什么不将日期直接存储在数据库的'IDBorn'和'IDDied'列中 – bugwheels94

+0

为什么你有日期文本?这是一个简单的格式问题。 – Fionnuala

+0

UNION用于将行添加到现有表/数据集的底部。 JOIN用于将列添加到表/数据集。 – ClintB

回答

1

您需要创建两个内连接的每个字段

select Name, T1A.IDBorn, T1B.IDDied 
from [Table 2] T2 
inner join [Table 1] T1A 
    on T2.IDDate = T1A.IDBorn 
inner join [Table 1] T1B 
    on T2.IDDate = T1B.IDDied 

希望这可以帮助你

+1

很多人在同一天出生。 – Fionnuala

+0

使用INNER JOIN,明白了。 –

0

虽然是的,这是要对一些数据的查找表的一个坏榜样您主表(你应该只使用日期字段),JorgeLondoño上面的答案是查询它的正确方法。

您也可以在设计视图中打开表格。选择字段“IDBorn”单击属性中的查找选项卡。

Display Control =“Combo Box”。

行来源类型=“表/查询”。

行来源=

SELECT T1A.IDBorn,Name 
FROM [Table 2] T2 INNER JOIN [Table 1] T1A on T2.IDDate = T1A.IDBorn 

绑定列= “1”

列计数= “2”

列宽= “0; 20”

这将显示实际值而不是查找值。然后,根据您对表格执行的操作,每次您希望从表格中获取数据时,可能不必执行此查询。

相关问题