具有多个表的嵌套SQL查询

时间:2014-04-04 22:32:43

标签: jquery sql

我正在尝试从表格"供应商"中返回供应商名称和产品名称。和"产品"对于最高价格的产品。到目前为止,这就是我所拥有的。我知道我做错了什么,但我不确定我的查询的两个部分是分别工作的。

SELECT suppliers.SUPPLIERNAME, products.PRODUCTNAME, products.PRICE
FROM PRODUCTS, SUPPLIERS
WHERE SUPPLIERS.SUPPLIERID=PRODUCTS.PRODUCTID
AND procuct.price=(SELECT MAX(Price)
from products);

1 个答案:

答案 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您的表格