我有以下SQL Server查询:
SELECT *
FROM Stock s
LEFT JOIN StockOrderItem soi
ON s.ItemNumber >= soi.StartNumber
AND s.ItemNumber < soi.StartNumber + soi.QuantityOrdered
到目前为止我得到的片段
join l1 in _context.StockOrderItems
on stock.ItemNumber equals l1.StartNumber into StockOrderItemGroup
from StockOrderItem in StockOrderItemGroup.DefaultIfEmpty()
问题在于:我不能使用“等于”,它必须在一个范围内。
如何在“ON”子句中添加多个条件以匹配我的SQL查询?
由于
答案 0 :(得分:4)
join子句执行的所有连接都是 equijoins 。换句话说,你只能基于两个键相等的匹配。
使用来自子句的化合物,而不是:
var query = from s in Stock
from l1 in _context.StockOrderItems
where s.ItemNumber >= l1.StartNumber
&& s.ItemNumber < l1.StartNumber + l1.QuantityOrdered;
答案 1 :(得分:3)
var query = from s in Stock
from l1 in _context.StockOrderItems
where s.ItemNumber >= l1.StartNumber
&& s.ItemNumber < l1.StartNumber + l1.QuantityOrdered
[...]