2016-11-20 63 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」

這將顯示實際值而不是查找值。然後,根據您對錶格執行的操作,每次您希望從表格中獲取數據時,可能不必執行此查詢。