2015-06-15 58 views
0

我是新來的stackoverflow,我最近經歷了一次面試作爲研究生開發人員,我被問到一個關於SQL的問題。如何找到所有未下訂單的客戶?

給定兩個表客戶和訂單,如何找到所有未下訂單的客戶。有人能告訴我什麼是實現這個目標的查詢嗎?

- 忘了提及我被要求使用JOIN運算符。

編輯:我找不到這個問題的答案,因爲這是技術性和邏輯性的。因此,我認爲我的問題與確定爲重複的問題不同。

+0

的可能重複的[內層和外層之間的差異聯接](HTTP無順序://計算器.com/questions/38549/inner-and-outer-join之間的差異) – Jupotter

+0

這是一個基本查詢,可能需要根據表結構進行修改。我會建議你去http://www.w3schools.com/一些教程,這將有助於你。 – hpatel

回答

3
SELECT c.CustomerId 
     ,Name 
FROM dbo.Customers c 
      LEFT JOIN dbo.Orders o ON o.CustomerId = c.CustomerId 
WHERE OrderId IS NULL 
2

這轉化爲相關子查詢使用EXISTS

select * 
from customers as c 
where not exists 
(select * from orders as o 
    where c.customer_id = o.customer_id) 

存在對於給定的customer_id

+0

非常感謝dnoeth,我忘記提及我被要求使用JOIN運算符來解決這個問題。 – user5011580