Соедините users, accounts и operations по ключам, затем отберите телефон и amount > 2. Сравнение строгое: операция ровно на 2 маната не подходит.
Получение операций пользователя по номеру телефона и ограничению суммы
Соедините users, accounts и operations по ключам, затем отберите телефон и amount > 2. Сравнение строгое: операция ровно на 2 маната не подходит.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Задача: вывести идентификатор операции и её сумму (operation_id, amount) для всех записей, где пользователь имеет телефон +994555551234 и сумма операции превышает 2 маната.
В базе присутствуют три таблицы:
users с колонками user_id, phone, name, age, email accounts с колонками account_id, user_id, created_by, changed_by operations с колонками account_id, amount, operation_time, operation_id
Ответ
Соедините users, accounts и operations по ключам, затем отберите телефон и amount > 2. Сравнение строгое: операция ровно на 2 маната не подходит.
Если amount хранится в манатах:
SELECT o.operation_id, o.amount
FROM users u
JOIN accounts a ON a.user_id = u.user_id
JOIN operations o ON o.account_id = a.account_id
WHERE u.phone = '+994555551234'
AND o.amount > 2;
Телефон — строка, а не число. Если суммы хранятся в минимальных единицах, порог нужно перевести в них. При пользовательском вводе телефон передают параметром запроса, не склеивают SQL. DISTINCT без причины не нужен.