0

我有三张桌子

产品表:

ID GeneralStockEnabled RetailerID

来源表

ID Name RetailerID

产品库存表

ProductID SourceID Stock

用户将在我的存储过程中同时传递@RetailerID 和@ProductID。

如何选择特定零售商的所有来源,并将来自产品库存表的库存值附加到特定产品 id 的产品库存表中存在的那些来源,并为该产品选择 GeneralStockEnabled 的值?. 即使我的产品没有库存,我仍然希望能够检索该零售商的所有来源?

任何帮助表示赞赏。

我现在有这个 SQL:

SELECT S.ID AS SourceID,S.Name AS SourceName,PIN.Stock
FROM Sources S
     LEFT OUTER JOIN ProductInventory PIN
     ON (S.ID = PIN.SourceID)
WHERE S.RetailerID = 1
AND PIN.ProductID = 1 

但由于我的产品库存表现在没有记录。在这种情况下,它没有选择左侧的来源。

4

2 回答 2

2

尝试这样的事情:

select s.*, pr.Stock, p.GeneralStockEnabled
    from sources s join
        Products p on s.RetailerId = p.RetailerId left outer join
        ProductInventory pr on pr.ProductId = p.Id
    where s.RetailerId = @RetailerId and p.id = @ProductId
于 2013-11-06T10:30:30.333 回答
0

您可以将连接用于相同的

http://www.w3schools.com/sql/sql_join.asp

于 2013-11-06T10:23:09.110 回答