Встречается на собеседованиях • сегодня

Как простроить сложный запрос без ORM

Для сложных запросов без ORM можно использовать:

  1. Чистый 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
`);
  1. 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');
  1. Оптимизация:
  • Используйте индексы для JOIN и WHERE
  • Ограничивайте выборку (LIMIT)
  • Разбивайте сложные запросы на несколько простых
  • Используйте EXPLAIN для анализа производительности

Для безопасности всегда используйте параметризованные запросы или escaping для предотвращения SQL-инъекций.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы