Source
QA Co-pilot | Ти ж знаєш SQL?": Як писати складні JOIN-и, не розуміючи їхПривіт, екі...
36 Views/Reach
2025-12-24 09:45
Message №136
💾 "Ти ж знаєш SQL?": Як писати складні JOIN-и, не розуміючи їхПривіт, екіпаж!Класика жанру: на співбесіді питають про SQL, ви кажете "впевнений середній рівень". А потім на роботі: "Слухай, перевір в базі, чи не загубилися транзакції за вчора для юзерів з Києва". 🤯І ти сидиш і думаєш: тут треба INNER JOIN чи LEFT JOIN? А як зв'язати таблицю Юзерів з таблицею Оплат? Більшість QA в цей момент йде до розробника: "Напиши мені селект, пліз".Не треба. Ваш Co-pilot — це найкращий DBA (Database Administrator). Вам навіть не треба знати точні назви колонок, достатньо описати логіку.Практичний кейс: Треба знайти баг у програмі лояльності. У нас є 3 таблиці:
1️⃣users (клієнти).2️⃣orders (замовлення).3️⃣bonuses (нараховані бали).
Завдання: Знайти юзерів, які купили на суму більше $100, але запису в таблиці bonuses для цього замовлення немає (або балів 0).✨ Готовий промпт "SQL Master":Виступи в ролі Database Architect.Мені потрібен SQL-запит (PostgreSQL/MySQL).**Структура моїх таблиць (приблизна):**1. `users` (id, email, city)2. `orders` (id, user_id, amount_usd, created_at)3. `bonuses` (order_id, points)**Завдання:**Напиши запит, який виведе email користувачів та ID замовлень, де:1. Сума замовлення (`amount_usd`) більше 100.2. АЛЕ в таблиці `bonuses` для цього замовлення або немає запису, або `points` дорівнює 0.3. Використовуй правильні JOIN-и.
✅ Результат від AI:SELECT u.email, o.id as order_id, o.amount_usdFROM users uJOIN orders o ON u.id = o.user_idLEFT JOIN bonuses b ON o.id = b.order_idWHERE o.amount_usd > 100 AND (b.points IS NULL OR b.points = 0);
Чому це круто?
1️⃣AI сам зрозумів, що треба LEFT JOIN (щоб знайти тих, у кого немає запису в бонусах).2️⃣Він правильно розставив умови WHERE.3️⃣Ви просто копіюєте це в DBeaver чи pgAdmin і бачите список багованих замовлень.
Висновок: Вам не треба зубрити синтаксис складних об'єднань. Вам треба розуміти суть даних. А код напише AI. Тепер ви можете перевіряти бекенд на рівні бази, а не тільки через UI.А ви пишете складні запити самі чи просите допомоги у девів? 👇