左连接SQL查询 - MS Access

时间:2013-07-31 00:03:25

标签: sql ms-access

我正在尝试使用下面的查询连接两个表Table1和Table2。我想要来自Table1的所有列(和行)和来自Table2的列'BasedOnDate'。 问题是,在左连接之后,'BasedOnDate'列中的所有值都被设置为1,而不是在两个表中匹配的行(如表1中的第1行和表2中的第1行)。有人可以评论问题在哪里?

我现在正在使用的查询:

SELECT Table1.*, Table2.BasedOnDate
FROM Table1 LEFT JOIN Table2 ON (Table1.Name = Table2.Name) AND 
(Table1.[Date-4] = Table2.[Date-4]) AND 
(Table1.[Date-3] = Table2.[Date-3]) AND 
(Table1.[Date-2]= Table2.[Date-2]) AND 
(Table1.[Date-1] = Table2.[Date-1]) AND 
(Table1.ID = Table2.ID) AND 
(Table1.Site = Table2.Site);



Table2:

Site    ID     Date-1    Date-2     Date-3     Date-4    Name      BasedOnDate
00001   201    3/30/2011 4/6/2011   4/3/2011   4/6/2011  Name-1         1


Table1:

Site    ID     Date-1    Date-2     Date-3     Date-4    Name      
00001   201    3/30/2011 4/6/2011   4/3/2011   4/6/2011  Name-1
00001   101    5/21/2011 5/28/2011  5/21/2011  5/28/2011 Name-2

1 个答案:

答案 0 :(得分:1)

当我重新创建您的情况时,我可以确认使用正确的语法查询有效:检索Table1的所有列以及加入的Table2的{​​{1}}。如果没有匹配,则查询会返回BasedOnDate的{​​{1}}。

null

您可以在此处查看:http://sqlfiddle.com/#!6/a56ee/2

如果您需要进一步研究,请发表评论。希望它能帮到你!