SQL Query在另一个表上使用Condition WHERE时从一个表返回各种行

Vic*_*tor 2 sql join rows

我有这两个表:

Factura

    FacturaID (PK) int
    Fecha date
    Total money
Run Code Online (Sandbox Code Playgroud)

FacturaDetalle

    FacturaDetalleID (PK) int
    FacturaID int FK on Factura.FacturaID
    ProductoID char(10) FK on Producto.ProductoID
    Precio money
Run Code Online (Sandbox Code Playgroud)

PRODUCTO

    ProductoID (PK) char(10)
    Descripcion char(50)
Run Code Online (Sandbox Code Playgroud)

现在添加一些数据:

INSERT INTO Producto (ProductoID, Descripcion) VALUES ('1', 'soda')
INSERT INTO Producto (ProductoID, Descripcion) VALUES ('2', 'papas')
INSERT INTO Producto (ProductoID, Descripcion) VALUES ('3', 'pan')

INSERT INTO Factura (Fecha, Total) VALUES ('Some Date', 100) SELECT SCOPE_IDENTITY() //Returns FacturaID = 1

INSERT INTO FacturaDetalle (FacturaID, ProductoID, Precio) VALUES (1, '1',  30)
INSERT INTO FacturaDetalle (FacturaID, ProductoID, Precio) VALUES (1, '1',  30)
INSERT INTO FacturaDetalle (FacturaID, ProductoID, Precio) VALUES (1, '1',  30)
INSERT INTO FacturaDetalle (FacturaID, ProductoID, Precio) VALUES (1, '2',  10)
Run Code Online (Sandbox Code Playgroud)

我想要的是一个查询,它发送FacturaDetalle上可用的所有4行...但我只需要FacturaDetalle.PrecioProducto.Descripcion.

但是我无法做到..

我尝试过这样的事情:

SELECT 
   Producto.Descripcion, FacturaDetalle.Precio 
FROM Producto 
INNER JOIN FacturaDetalle ON FacturaDetalle.ProductoID = Producto.ProductoID 
WHERE FacturaDetalleID.FacturaID = 1
Run Code Online (Sandbox Code Playgroud)

我得到了这个例外

无法绑定多部分标识符"FaturaDetalle.ProductoID".
无法绑定多部分标识符"Prodcuto.ProductoID".
无法绑定多部分标识符"FacturaDetalleID.FacturaID".

我究竟做错了什么?

提前致谢

Joh*_*Woo 5

为避免拼写错误,您可以提供ALIAStableNames周围的内容.

SELECT  a.Descripcion, 
        b.Precio 
FROM    Producto a
        INNER JOIN FacturaDetalle b
            ON b.ProductoID = a.ProductoID 
WHERE   b.FacturaID  = 1
Run Code Online (Sandbox Code Playgroud)

顺便提一句,在原始查询中,您使用的是FacturaDetalleID代替FacturaDetalle