我有这两个表:
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.Precio和Producto.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".
我究竟做错了什么?
提前致谢
为避免拼写错误,您可以提供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