簡體   English   中英

具有多個表的嵌套 SQL 查詢

[英]Nested SQL query with multiple tables

我試圖從表“供應商”和“產品”中返回最高價格產品的供應商名稱和產品名稱。 到目前為止,這就是我所擁有的。 我知道我做錯了什么,但我不確定我的查詢的兩個部分分別工作是什么。

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

我有幾點意見和可能的解決方案。

1) 你有拼寫錯誤。 你拼錯了你的表名。

2)這不是你加入2張桌子的方式

3) 您正在將您的產品 ID 與您的供應商 ID 結合起來。 那不可能是對的。 您的 PROUCTS 表應該有一些 SUPPLIER_ID 或其他東西。 或者一些第三張桌子加入那兩張桌子或類似的東西。

/*
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);

刪除表名前面的 @ 以使其適合您。 請記住,這仍然可能是錯誤的,因為您可能不應該根據PRODUCTID = SUPPLIERID JOIN您的表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM