我正在尝试从表格"供应商"中返回供应商名称和产品名称。和"产品"对于最高价格的产品。到目前为止,这就是我所拥有的。我知道我做错了什么,但我不确定我的查询的两个部分是分别工作的。
SELECT suppliers.SUPPLIERNAME, products.PRODUCTNAME, products.PRICE
FROM PRODUCTS, SUPPLIERS
WHERE SUPPLIERS.SUPPLIERID=PRODUCTS.PRODUCTID
AND procuct.price=(SELECT MAX(Price)
from products);
答案 0 :(得分:0)
我有几条评论和可能的解决方案。
1)你有拼写错误。你的桌名拼错了。
2)这不是你加入2桌的方式
3)您正在将您的产品ID加入您的供应商ID。那不是对的。您的PROUCTS表应该有一些SUPPLIER_ID或其他东西。或者某些第三张表加入那些2或类似的东西。
/*
DECLARE @PRODUCTS TABLE (PRODUCTNAME varchar(10), PRICE int, PRODUCTID INT);
INSERT INTO @PRODUCTS VALUES
('Shoes', 10, 1),
('Pants', 123, 2),
('Socks', 30, 3);
DECLARE @SUPPLIERS TABLE (SUPPLIERNAME varchar(10), SUPPLIERID INT);
INSERT INTO @SUPPLIERS VALUES
('Adidas', 1),
('Nike', 2);
*/
SELECT s.SUPPLIERNAME, p.PRODUCTNAME, p.PRICE
FROM @PRODUCTS p
JOIN @SUPPLIERS s ON s.SUPPLIERID = p.PRODUCTID
WHERE p.price=(SELECT MAX(Price) from @PRODUCTS);
删除表名前面的@以使其适用于您。
请记住,这仍然可能是错误的,因为根据JOIN
PRODUCTID = SUPPLIERID
您的表格