关于左连接SQL查询:左连接SQL查询 – MS Access

Left Join SQL Query - MS Access

我正在尝试使用下面的查询连接两个表Table1和Table2。我要表1中的所有列(和行),表2中的"basedondate"列。问题是,列'basedondate'中的所有值都在左联接后设置为1,而不是在两个表中匹配的行上(如表1中的行1和表2中的行1)。有人能评论一下问题所在吗?

我现在使用的查询:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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


在我重新创建您的情况时,我可以确认使用正确的语法查询是有效的:检索Table1的所有列加上连接的Table2BasedOnDate。如果没有匹配,查询将返回nullfor BasedOnDate

1
2
3
SITE ID     DATE1           DATE2           DATE3           DATE4           NAME    BASEDONDATE
1    201    March, 30 2011  April, 06 2011  April, 03 2011  April, 06 2011  Name-1  1
1    101    May, 21 2011    May, 28 2011    May, 21 2011    May, 28 2011    Name-2  (NULL)

您可以在这里查看:http://sqlpiddle.com/!6/A56EE/2号

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