Один из самых важных навыков – понимание JOIN. В реальных системах данные почти никогда не лежат в одной таблице. Пользователь хранится в одной таблице, заказ – во второй, платеж – в третьей, статус – в четвертой. Чтобы собрать полную картину, нужны соединения.
Пример:
SELECT orders.id, users.email, orders.status
FROM orders
JOIN users ON orders.user_id = users.id;
Такой запрос показывает заказы вместе с email пользователей. Для системного аналитика важно понимать, как связаны сущности: один пользователь может иметь много заказов, один заказ может иметь несколько позиций, один платеж может относиться к конкретному заказу.
Основные типы соединений, которые стоит знать:
- INNER JOIN – Показывает только записи, у которых есть совпадение в обеих таблицах;
- LEFT JOIN – Показывает все записи из левой таблицы, даже если во второй таблице нет совпадения;
- RIGHT JOIN – Используется реже, логически похож на LEFT JOIN, но с другой стороны соединения;
- FULL JOIN – Показывает все записи из обеих таблиц, если СУБД поддерживает такой тип соединения.
Особенно часто системному аналитику нужен LEFT JOIN. Например, нужно найти пользователей, у которых нет заказов, заявки без назначенного менеджера или платежи без связанного документа.