Встречается на собеседованиях • сегодня
Как простроить сложный запрос без ORM
Для сложных запросов без ORM можно использовать:
- Чистый SQL через query builder или напрямую:
javascript
const result = await pool.query(`
SELECT users.*, COUNT(orders.id) as order_count
FROM users
LEFT JOIN orders ON users.id = orders.user_id
WHERE users.status = 'active'
GROUP BY users.id
HAVING COUNT(orders.id) > 5
ORDER BY order_count DESC
`);- Query Builder (например, Knex.js):
javascript
const users = await knex('users')
.select('users.*')
.count('orders.id as order_count')
.leftJoin('orders', 'users.id', 'orders.user_id')
.where('users.status', 'active')
.groupBy('users.id')
.having('order_count', '>', 5)
.orderBy('order_count', 'desc');- Оптимизация:
- Используйте индексы для JOIN и WHERE
- Ограничивайте выборку (LIMIT)
- Разбивайте сложные запросы на несколько простых
- Используйте EXPLAIN для анализа производительности
Для безопасности всегда используйте параметризованные запросы или escaping для предотвращения SQL-инъекций.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы