TGViewer
QA❤️4Life | Testing | Тестирование ПО QA❤️4Life | Testing | Тестирование ПО @qa4life · 7.9K subscribers
Post #4713 572
💾 SQL для тестировщика: SELECT, JOIN, подзапросы

⚙️ SELECT – база
Достаём данные и сразу фильтруем:
SELECT id, email, status
FROM users
WHERE created_at >= '2024-01-01'
ORDER BY id DESC
LIMIT 50;
Полезно: COUNT(*), DISTINCT, LIKE '%test%', IN ('active','banned'), BETWEEN.
Поиск дублей: GROUP BY email HAVING COUNT(*) > 1.

📋 JOIN без боли
JOIN соединяет таблицы по ключу:
INNER JOIN → только совпадения
LEFT JOIN → всё слева + совпадения (нет пары → NULL)
RIGHT JOIN → зеркально LEFT
FULL JOIN → всё из обеих (нет в MySQL)
Заказы без оплаты – классика на собесах:
SELECT o.id
FROM orders o
LEFT JOIN payments p ON p.order_id = o.id
WHERE p.id IS NULL;

🔍 Подзапросы
Запрос внутри запроса:
SELECT * FROM users
WHERE id IN (SELECT user_id FROM orders WHERE sum > 10000);
Скалярный в SELECT – счётчик заказов:
SELECT name,
(SELECT COUNT(*) FROM orders o WHERE o.user_id = u.id) AS cnt
FROM users u;

✅ Чек-лист
– LEFT JOIN + условие на правую таблицу в WHERE превращает его в INNER. Ловушка.
– NULL не равен даже NULL: сравнение через = не работает, пиши IS NULL.
– JOIN «один ко многим» дублирует строки, суммы растут. Лечится DISTINCT или подзапросом.
– Сверь COUNT до и после миграции.

⚠️ Грабли
– Забытый WHERE в UPDATE/DELETE меняет всю таблицу: сначала SELECT, потом изменение.
– WHERE date = '2024-01-01' пропустит время после полуночи. Бери диапазон: >= '2024-01-01' AND < '2024-01-02'.

📚 Источники
Alan Beaulieu, «Learning SQL», O'Reilly, 3rd ed.
Viescas, Hernandez, «SQL Queries for Mere Mortals», 4th ed.

📖 Расширенная версия – на Telegraph:
🔗 Часть 1 – SELECT и WHERE
🔗 Часть 2 – Агрегаты, GROUP BY, HAVING
🔗 Часть 3 – JOIN
🔗 Часть 4 – Подзапросы, UNION, CASE
🔗 Часть 5 – Оконные функции и копилка запросов

━━━━━━━━━━━━━━━━━━━━
📢 QA❤️4Life — канал о тестировании
🤖 SyntxAI — все самые нужные нейросети в одном сервисе
🔒 MaxVpn — Удобный и быстрый VPN
🧠 Google AI Pro — подписка на личный Google-аккаунт на 18 месяцев за 990₽
━━━━━━━━━━━━━━━━━━━━
👑 Авторский курс по созданию персональных ИИ-агентов

#QA #Тестирование #SQL #БазыДанны
  • 🔥 3
  • 👍 2
More from @qa4life
  1. Sep 24, 2026💾 HTTP-статусы и заголовки: что проверять тестировщику ⚙️ Коды статусов: мини-таблица Код…
  2. Sep 24, 2026📋 У ИИ-агентов нет цены ошибки. Гонка от этого не останавливается Ажар Доненбаева на Хабр…
  3. Sep 24, 2026📋 11 недель с Claude Code: агент нашёл 77 багов, человек 16 Kova13v, автор пака paranoid-…
  4. Sep 24, 2026📋 Клон корпоративной аналитики за 48 часов не пережил краш-тест Алексей Арустамов, CEO Lo…
  5. Sep 22, 2026📋 В IT быстрее всех растут зарплаты не у разработчиков Хабр Карьера посмотрела первое пол…
  6. Sep 22, 2026Post #4718
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →