2012-02-22 60 views
-1

假設我有以下表格:Microsoft Access查詢 - 不返回所有數據

  • 表1:FLP,FNAME,LNAME
  • 表2:FLP,職位,公司,地點
  • 表3:FLP,狀態,薪水,職位

所有由FLP鏈接在一起。

當我試圖查詢來獲取所有表中的所有字段想我的查詢是以下

Select * 
From Table1, Table2, Table3 
Where Table1.FLP = Table2.FLP AND Table1.FLP = Table3.FLP 

但是,假設一個表中不包含的信息或記錄從而沒有一個FLP。

例如:如果我插入到表1 johndoe1, john, doe
進入表2 johndoe1, developer, comp, usa
但由於信息沒有插入任何東西表3是可選

我的查詢將不會取,因爲它會結果失敗在Table1.FLP= Table3.FLP

有時table2不包含任何信息

如果我想我的查詢如下

Select * 
From Table1, Table2, Table3 
Where Table1.FLP = Table2.FLP OR Table1.FLP = Table3.FLP 

然後將取回所有的結果,但混合起來,例如johndoe1將有從表3,是不是等於johndoe1從而形成具有不同值的多個結果的信息。

如果需要更多的解釋或真正的表設計請讓我知道。

+0

歡迎StackOverflow上:如果您發佈的代碼,XML或數據樣本,** **請在高亮文本編輯器的線,然後單擊「代碼示例」按鈕('{}' )在編輯器工具欄上以良好的格式和語法突出顯示它! – 2012-02-22 16:12:52

回答

2

你應該使用LEFT JOIN:

Select * From Table1 LEFT JOIN Table2 ON Table1.FLP = Table2.FLP LEFT JOIN Table3 ON Table1.FLP = Table3.FLP; 

這會給你一個空白項每當有一個右手錶中沒有匹配的元素。

參見:http://msdn.microsoft.com/en-us/library/bb208894%28v=office.12%29.aspx

+0

感謝您的幫助,我在嘗試使用左外連接之前,您給了我這個答案,但是您的答案ss給我一個語法錯誤在查詢表達式中缺少運算符。我認爲它的情況下在同一語句中有多個連接 – aminet91 2012-02-22 16:26:40

+0

好的我設法解決它,它與Microsoft Access有關,它應該如下 選擇*從((表1)左連接表2 ON Table1.FLP = Table2.FLP)LEFT JOIN Table3 ON Table1.FLP = Table3.FLP; 感謝@ ShoeDah7 – aminet91 2012-02-22 16:40:54