Sql MS ACCESS中带有外部联接的嵌套内部联接

Sql MS ACCESS中带有外部联接的嵌套内部联接,sql,ms-access,left-join,inner-join,Sql,Ms Access,Left Join,Inner Join,我已经回顾了之前关于这个话题的一些问题,似乎无法找到我的问题的答案 我有3张桌子(很多,菜单,SKU) 我需要菜单中的所有成分以及给定SKU的SKU中的相关产品名称,即使批次中没有相关行 我当前的查询: select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as mQuantity, l.quantity, l.lot from (Menu m inner join sku s on m.i

我已经回顾了之前关于这个话题的一些问题,似乎无法找到我的问题的答案

我有3张桌子(很多,菜单,SKU)

我需要菜单中的所有成分以及给定SKU的SKU中的相关产品名称,即使批次中没有相关行

我当前的查询:

    select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as   mQuantity, l.quantity, l.lot 
    from (Menu m 
    inner join sku s on m.ingrsku = s.sku)
    left outer join lot l on m.ingrsku + '-070516j' = l.lot and l.destinationid = 2 
    where m.skutype = 4 and m.SKU = '1321'
我读到外部连接必须在内部连接之后,但是我仍然得到“join Expression Not Supported”错误

有什么想法吗


更新:此查询在SQL Server中提供所需的结果集;只是无法让它在Access中运行

您尝试过没有括号吗

select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as , mQuantity, l.quantity, l.lot 
from Menu m 
join sku s on m.ingrsku = s.sku
left join lot l on m.ingrsku + '-070516j' = l.lot and l.destinationid = 2 
where m.skutype = 4 and m.SKU = '1321'

原来问题在于左联接中的多个条件

我添加了parens,它解决了这个问题

    select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as   mQuantity, l.quantity, l.lot 
    from (Menu m 
    inner join sku s on m.ingrsku = s.sku)
    left outer join lot l on (m.ingrsku + '-070516j' = l.lot and l.destinationid = 2) 
    where m.skutype = 4 and m.SKU = '1321'

Access中的左外部联接是左联接Access在这里可能有一个奇怪的限制:“在多表联接中,外部联接可以嵌套在内部联接中,但内部联接不能嵌套在外部联接中。”@random\u answer\u guy:我尝试了左连接,得到了相同的结果。@shawn00我看了其他回答的问题,这些问题建议颠倒顺序或进行两次左连接(在这种情况下不起作用)。想知道是否有人对此有建议,或者有方法重写查询(可能是子查询?)@Jeff0尽管Access有它的怪癖,但没有逻辑上的理由以任何特定的顺序编写连接。其他平台也会接受你的查询。非常奇怪。我不怎么接触,但我不记得在那里见过帕伦斯。
    select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as   mQuantity, l.quantity, l.lot 
    from (Menu m 
    inner join sku s on m.ingrsku = s.sku)
    left outer join lot l on (m.ingrsku + '-070516j' = l.lot and l.destinationid = 2) 
    where m.skutype = 4 and m.SKU = '1321'