2016-03-17 26 views
0

我有2個表:Ms.Access查詢選擇所有從TBL1和僅1列從TBL2

  • tbl1(ID, Name, Sex, OrderDate)
  • tbl2(OrderDate, OrderCode)

我試圖顯示從所有數據tbl1 (ID, Name, Sex, OrderDate)只有tbl2(OrderCode)的一列。

我已經試過這

SELECT tbl1.*, tbl2.OrderCode FROM tbl1, tbl2; 

,但它顯示的重複數據。這樣

Like this

我查了一段時間,但只看到MySQL的,他們使用join的查詢,但它出現語法錯誤條款。

我希望它看起來像這樣ID姓名性別訂購日期OrderCode OrderCode是自動編號隨機這就是爲什麼我把它放在其他表,因爲訪問不允許2自動編號在同一個表

+0

查詢返回'兩個表的交叉join'嘗試使用'左外join'和'distinct'關鍵字 – Yog

+0

請給我們您預期的輸出。 –

+0

@TimBiegeleisen我的預期結果是** ID名稱性別訂購日期訂購代碼** –

回答

0

創建兩個表如下:

enter image description here

,然後使用該查詢

select t1.ID, t1.Name, t1.Sex, t2.OrderDate, t2.OrderCode from 
Table1 t1 
inner join Table2 t2 on t1.ID = t2.ID; 
+0

仍然重複... –

+0

這是重複? – Saif

+0

所有這些......沒有什麼變化...... –

0

你正在做一個CROSS JOIN這導致了笛卡爾積

您應該加入2個表中常見的字段以限制返回的行。

在你的情況下,我在這兩個表上看到的唯一字段是OrderDate,這有點奇怪。

試試這個

SELECT tbl1.*, tbl2.OrderCode FROM tbl1, tbl2 WHERE tbl1.OrderDate=tbl2.OrderDate 
0

請注意,您的表TBL(ID,姓名,性別,OrderDate) tbl2(OrderDate,OrderCode)doesnt有關係,你必須與這兩個表之前,您可以選擇列... 試試這個: 新表: TBL1(ID,姓名,性別,訂購日期) TBL2(ID,訂購日期,OrderCode) tbl1.Id是主鍵和Tbl2.ID是外鍵 ,我會選擇所有列在TBL1和TBL2中的一個 列(不區分大小寫限制的)

Select tbl1.Id,tbl1.name,tbl1.sex,tbl1.Orderdate,tbl2.orderdate from tbl1,tbl2 where tbl1.id=tbl2.id

+0

但tbl1.ID(自動編號)與tbl2.ID(編號) –

+0

不一樣,它工作的很好......但是我想用INNER JOIN,因爲我不想搞亂關係。非常感謝 ! –

+0

太好了..希望你做得好。 –

0

當你想,有一個結果與兩個表的關係,這意味着你想使用Join。

當你有多餘的結果時,你也可以使用不同的結果。

SELECT DISTINCT tbl1.*, tbl2.OrderCode FROM tbl1, tbl2;