Пример обычного SQL запроса для выборки из базы
Что проверяют
Сможете ли вы сами достать данные для проверки, не дёргая разработчика. От тестировщика не ждут оптимизации запросов, ждут уверенного SELECT с условием, соединением и группировкой, и понимания, что вы смотрите на живую базу стенда.
Как отвечать
Напишите запрос вслух, проговаривая каждый кусок.
SELECT o.id, o.created_at, u.email, o.status
FROM orders o
JOIN users u ON u.id = o.user_id
WHERE o.status = 'paid'
AND o.created_at >= '2026-01-01'
ORDER BY o.created_at DESC
LIMIT 50;Дальше покажите проверки, ради которых тестировщику вообще нужен SQL: поиск дублей через GROUP BY ... HAVING count(*) > 1, сверка того, что отдал API, с тем, что лежит в таблице, подготовка данных под тест-кейс, подтверждение, что запись действительно создалась, а не просто вернулся успешный код.
Сильно звучит порядок выполнения: сначала FROM и соединения, потом WHERE, затем GROUP BY и HAVING, только после этого SELECT, и в самом конце ORDER BY с LIMIT. Отсюда понятно, почему псевдоним из SELECT не виден в WHERE и почему фильтр по агрегату пишется в HAVING.
Где спотыкаются
Сравнивают с пустым значением через равенство. Условие status = NULL не вернёт ничего никогда, нужно IS NULL. По той же причине NOT IN с подзапросом, где встретился NULL, отдаёт пустой результат.
Второе: пишут LEFT JOIN, а условие по правой таблице ставят в WHERE. Строки без пары отсеиваются, и соединение молча превращается в обычный JOIN, хотя в запросе написано другое. Такому условию место в ON.
Третье: запускают на стенде UPDATE или DELETE, не посмотрев выборку тем же условием. Рабочая привычка: сначала SELECT с тем же фильтром, оценить количество строк, и только потом менять данные.