Список клиентов с датами их заказов

Соедините Orders с Customers по CustomerID и выберите CustomerName, OrderDate. При INNER JOIN в приведённых данных останется только заказ клиента 2, поскольку клиентов 37 и 77 нет.

Короткий ответ

Что ответить на собеседовании

Соедините Orders с Customers по CustomerID и выберите CustomerName, OrderDate. При INNER JOIN в приведённых данных останется только заказ клиента 2, поскольку клиентов 37 и 77 нет.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо получить список имен клиентов и соответствующих дат их заказов, объединив таблицы Orders и Customers по полю CustomerID.

-- Таблица Orders
CREATE TABLE Orders (
    OrderID INT,
    CustomerID INT,
    OrderDate DATE
);

-- Данные таблицы Orders
INSERT INTO Orders (OrderID, CustomerID, OrderDate) VALUES
(10308, 2, '1996-09-18'),
(10309, 37, '1996-09-19'),
(10310, 77, '1996-09-20');

-- Таблица Customers
CREATE TABLE Customers (
    CustomerID INT,
    CustomerName VARCHAR(100),
    ContactName VARCHAR(100),
    Country VARCHAR(50)
);

-- Данные таблицы Customers
INSERT INTO Customers (CustomerID, CustomerName, ContactName, Country) VALUES
(1, 'Alfreds Futterkiste', 'Maria Anders', 'Germany'),
(2, 'Ana Trujillo Emparedados y helados', 'Ana Trujillo', 'Mexico'),
(3, 'Antonio Moreno Taquería', 'Antonio Moreno', 'Mexico');

Ответ

Соедините Orders с Customers по CustomerID и выберите CustomerName, OrderDate. При INNER JOIN в приведённых данных останется только заказ клиента 2, поскольку клиентов 37 и 77 нет.

Запрос:

SELECT c.CustomerName, o.OrderDate
FROM Orders AS o
JOIN Customers AS c ON c.CustomerID = o.CustomerID
ORDER BY o.OrderDate, o.OrderID;

Результат: Ana Trujillo Emparedados y helados и 1996-09-18. Если необходимо сохранить все заказы, включая неизвестных клиентов, замените JOIN на LEFT JOIN от Orders; имя для них станет NULL. Для списка всех клиентов независимо от заказов, наоборот, начинайте с Customers LEFT JOIN Orders. Выбор типа соединения зависит от требуемого набора строк.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее