Microsoft Access查询 - 不返回所有数据

时间:2012-02-22 16:10:04

标签: sql ms-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。

例如:如果我插入table1 johndoe1, john, doe
并进入table2 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将具有来自table3的信息,该信息不等于johndoe1,从而创建具有不同值的多个结果。

如果需要更多解释或真实的桌面设计,请告诉我。

1 个答案:

答案 0 :(得分: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