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 |
在我重新创建您的情况时,我可以确认使用正确的语法查询是有效的:检索
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号
如果您需要进一步研究,请发表评论。希望它能帮助你!