访问语法问题:多个内部连接导致记录数减少

Access Syntax Issues: multiple inner joins cause record number reduction

我的问题是我想查询多个表,但是随着我增加内连接的数量,结果记录数减少了。

SELECT DISTINCT Daily_Output20151013.[Lot No], atabla.[Outgoing date]        
AS [ext(1)time], btabla.[Outgoing date] 

FROM ((((((Daily_Output20151013 

INNER JOIN (SELECT [Lot no], [Outgoing date] FROM Daily_Output20151013 
WHERE ((mid(Daily_Output20151013.[Process Pattern],4,1) = 'S')) 
    and (mid(Daily_Output20151013.[Process Pattern],5,1)='T') 
    and (mid(Daily_Output20151013.[Process Pattern],6,1)='R') 
    and (mid(Daily_Output20151013.[Process Pattern],8,1)='1'))  AS atabla ON Daily_Output20151013.[Lot No] = atabla.[Lot No]) 

INNER JOIN (SELECT [Lot no], [Outgoing date] FROM Daily_Output20151013 
WHERE ((mid(Daily_Output20151013.[Process Pattern],4,1) = 'P')) 
    and (mid(Daily_Output20151013.[Process Pattern],5,1)='L') 
    and (mid(Daily_Output20151013.[Process Pattern],6,1)='G') 
    and (mid(Daily_Output20151013.[Process Pattern],8,1)='1'))  AS btabla ON Daily_Output20151013.[Lot No] = btabla.[Lot No]) 

这是代码的一小段摘录。出现缩减问题,因为有时这些字段不包含任何数据,我认为,Access不会显示任何丢失至少一个数据的记录。

我的问题是如何解决该问题并显示所有数据

提前感谢您的帮助。

您需要使用LEFT JOIN而不是INNER JOIN,这会将return左侧的所有记录table(Daily_Output20151013)连同匹配您加入的子查询的记录。

注意:如果您在查询中有很多这样的 LEFT JOIN,性能可能会受到影响。可能需要将子查询(atabla、btabla)保存为命名查询并改为使用它们。