【发布时间】:2016-11-25 08:41:36
【问题描述】:
我已经查看了有关此主题的一些先前问题,但似乎无法得到我的问题的答案。
我有 3 张桌子(Lot、Menu、SKU)。
我需要给定 SKU 的菜单中的所有成分及其在 SKU 中的相关产品名称,即使 LOT 中没有相关行
我当前的查询:
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'
我读到外部联接必须在内部联接之后,但我仍然收到“不支持联接表达式”错误。
有什么想法吗?
更新:此查询在 SQL Server 中提供所需的结果集;只是无法让它在 Access 中运行
【问题讨论】:
-
Access 中的左外连接是左连接
-
也许 Access 在这里确实有一个奇怪的限制:“外部联接可以嵌套在多表联接中的内部联接中,但内部联接不能嵌套在外部联接中。” msdn.microsoft.com/en-us/library/bb243855(v=office.12).aspx
-
@random_answer_guy:我尝试了左连接并得到了相同的结果。
-
@shawn00 我查看了其他问题的回答,这些问题建议颠倒顺序或进行两个左连接(在这种情况下不起作用)。想知道是否有人对此有建议或重写查询的方法(也许是子查询?)
-
@Jeff0 尽管 Access 有其古怪之处,但没有任何逻辑理由以任何特定顺序编写联接。无论哪种方式,其他平台都会接受您的查询。
标签: sql ms-access left-join inner-join