我已经回顾了之前有关此主题的一些问题,似乎无法回答我的问题。
我有3张桌子(Lot,Menu,SKU)。
我需要菜单中的所有成分及其在SKU中的相关产品名称,即使在LOT中没有关联的行,也需要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'
我读到外连接必须在内部之后,但我仍然得到“不支持连接表达式”错误。
有什么想法吗?
更新:此查询在SQL Server中提供所需的结果集;只是无法让它在Access
中运行答案 0 :(得分:2)
原来问题在于左连接中的多个条件。
我添加了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'
答案 1 :(得分:0)
你没有括号试试吗?
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'
答案 2 :(得分:-1)
select y.IngrSKU, y.IngMeasurementID, y.productName,
y.quantity as mQuantity, y.quantity, y.lot
from ((select *
from Menu m
inner join sku s on m.ingrsku = s.sku ) x
left outer join lot l on x.ingrsku + '-070516j' = l.lot
and l.destinationid = 2 ) y
where y.skutype = 4 and y.SKU = '1321'