# Solution For Customers Who Never Order

Customers Who Never Order problem on LeetCode is a SQL based question that requires you to write a query to find all the customers who have never made an order.

To solve this problem, we need to join two tables – Customers and Orders, and then use the NOT EXISTS operator to find all the customers who have not made any orders. Below is the detailed solution to this problem.

SELECT c.Name AS 'Customers Who Never Order' FROM Customers c
WHERE NOT EXISTS
(SELECT o.CustomerId FROM Orders o WHERE o.CustomerId = c.Id);

In the above query, we first select the name of the customers from the Customers table and alias it as ‘Customers Who Never Order’. Next, we use the NOT EXISTS operator to find all the customers who have not made any orders.

The subquery SELECT o.CustomerId FROM Orders o WHERE o.CustomerId = c.Id finds all the customer IDs from the Orders table where the customer has made an order.

The NOT EXISTS operator then returns all the customers whose IDs are not present in the above subquery result. These are the customers who have never made an order.

Therefore, the output of this query will be a list of customers who have never made an order.

## Step by Step Implementation For Customers Who Never Order

This problem can be solved using a HashMap. We can iterate through the customers table, and for each customer we encounter, we can check if they are in the HashMap. If they are not in the HashMap, we can add them to the HashMap. If they are in the HashMap, we can update the value associated with their customer ID to reflect that they have placed an order. Finally, we can iterate through the HashMap and print out the customer IDs of those customers who never placed an order.

import java.util.HashMap;

public class Solution {
public List customersWhoNeverOrder(List customers) {
// Create a HashMap to keep track of customers who have placed an order
HashMap map = new HashMap<>();

// Iterate through customers table
for (Customer customer : customers) {
int id = customer.getId();

// If customer is not in the HashMap, add them
if (!map.containsKey(id)) {
map.put(id, false);
}
// If customer is in the HashMap, update their value to reflect that they have placed an order
else {
map.put(id, true);
}
}

// Create a list to store the IDs of customers who never placed an order
List list = new ArrayList<>();

// Iterate through the HashMap
for (int id : map.keySet()) {
// If customer has never placed an order, add their ID to the list
if (!map.get(id)) {
}
}

return list;
}
}
This problem can be solved using a single SQL query.

SELECT
c.customerName
FROM
customers c
LEFT JOIN orders o ON c.customerNumber = o.customerNumber
WHERE
o.customerNumber IS NULL
This problem can be solved using a HashMap. We can create a HashMap that maps customer IDs to customer names. Then, we can iterate through the customers array and check if each customer ID is in the HashMap. If it is, we can add the customer name to the output array. If it isn't, we can add the customer ID to the HashMap.
There is no C++ solution for this problem.
using System.Collections.Generic;
using System.Linq;

public class Solution {
public IList CustomersWhoNeverOrder(IList customers) {
// Create a list to store the customers who never ordered
List customersWhoNeverOrdered = new List();

// Loop through each customer in the list
foreach(Customer customer in customers) {
// If the customer has never ordered, add them to the list
if(customer.Orders.Count == 0) {
}
}

// Return the list of customers who never ordered
return customersWhoNeverOrdered;
}
}

Scroll to Top

## Top 100 Leetcode Practice Problems In Java

Get 30% Off Instantly!
[gravityforms id="5" description="false" titla="false" ajax="true"]