需要有关Northwind数据访问层教程的更正SQL语法的帮助

时间:2011-08-02 15:46:53

标签: sql syntax northwind

我正在尝试从http://msdn.microsoft.com/en-us/library/aa581776.aspx完成数据访问层教程我到目前为止(感谢这个论坛)能够生成相应的TableAdapter并且它们可以在单个表上工作。现在,我正在尝试执行相关的表查询,通过将SQL编辑为嵌套的选择格式来查看三个表来修改GetProducts()方法;产品,导弹和供应商。给出的语法如下:

SELECT     
 ProductID, ProductName, SupplierID, CategoryID, 
 QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, 
 ReorderLevel, Discontinued,
    (SELECT 
        CategoryName 
     FROM Categories 
     WHERE Categories.CategoryID = Products.CategoryID  as CategoryName, 
    (SELECT 
       CompanyName 
     FROM Suppliers 
     WHERE Suppliers.SupplierID = Products.SupplierID) as SupplierName
FROM Products

这不解析。任何人都可以告诉我这个嵌套选择的正确语法,以便它可以工作吗?有没有其他人有这个问题?我正在使用Visual Studio 2010和SQL Server 2008 Express。 感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:1)

看起来你错过了第一个子查询的结束,改变了;

... Products.CategoryID as CategoryName

... Products.CategoryID) as CategoryName

答案 1 :(得分:1)

你没有关闭第一个“(”(或者可能是第二个,取决于你如何看待它)。

答案 2 :(得分:1)

SELECT     
 ProductID, 
 ProductName, 
 SupplierID, 
 CategoryID, 
 QuantityPerUnit, 
 UnitPrice, 
 UnitsInStock, 
 UnitsOnOrder, 
 ReorderLevel, 
 Discontinued,
 Categories.CategoryName as CategoryName,
 Suppliers.CompanyName As SupplierName
FROM Products
Join Suppliers On Suppliers.SupplierID = Products.SupplierID
Join Categories On Categories.CategoryID = Products.CategoryID

您想使用此处加入而不是嵌套查询