如何使用内连接语句从多个表中选择数据?

时间:2013-11-06 10:13:17

标签: sql sql-server-2008

我有三张桌子

产品表:

ID GeneralStockEnabled RetailerID

来源表

ID Name RetailerID

ProductInventory Table

ProductID SourceID Stock

用户将在我的存储过程中传递@RetilerID和@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 

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以使用相同的

连接

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