假设我有以下表格:
所有这些都由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,从而创建具有不同值的多个结果。
如果需要更多解释或真实的桌面设计,请告诉我。
答案 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