我有兩個表Orders
和Customers
。 Orders
包含以下列:OrderID
,CustomerID
。 Customers
包含列:CustomerID
,CustomerName
。我從Customers
有幾條記錄沒有任何訂單。所以我想要獲得所有獨特的客戶(即使他們沒有訂單)和訂單。SQL:如何僅將多個列中的一列應用於不同的列?
我想通過此查詢獲得它:
SELECT DISTINCT(CustomerName) OrderID, Orders.CustomerID, CustomerName
FROM Customers
LEFT JOIN Orders ON Orders.CustomerID = Customers.CustomerID
ORDER BY CustomerName;
但通過CustomerName
值替換OrderID
列值。 那爲什麼我應該使用下面的查詢來獲得所需的結果。
SELECT OrderID, CustomerID, CustomerName
FROM
(
SELECT DISTINCT(CustomerName) OrderID, Orders.CustomerID, CustomerName
FROM Customers
LEFT JOIN Orders ON Orders.CustomerID = Customers.CustomerID
ORDER BY CustomerName
);
在我的第一個查詢中是否有任何錯誤?可以修復它嗎?
的第一個忠告,你錯過了一個逗號 「」 在SELECT DISTINCT(客戶名稱)後,訂單ID, – DanieleO
只有每行不同的作品。對於有多個訂單的客戶,您希望看到什麼? –
@ZoharPeled這只是一個示例查詢。我知道這是毫無意義的,但我想獲得所有獨特的客戶。我知道一個客戶可以獲得多個訂單。 –