К записям из одной таблицы выбрать количество соответствующих записей из двух других таблиц - MySQL

Узнай цену своей работы

Формулировка задачи:

Вот сюда выложил кусок базы и свой запрос: http://sqlfiddle.com/#!9/939175/2 У пользователя с id=3 хочу чтобы показывалось zakazy=3, favs=2, а показывается 6 (их произведение). Выборки из 2 таблиц работают: пользователи + заказы -> http://sqlfiddle.com/#!9/939175/4 или пользователи + избранное -> http://sqlfiddle.com/#!9/939175/5 А можно ли сделать одним запросом выборку из 3 таблиц? PS: поисковики, мануалы и форумы читаю уже часа 3, пробовал разные варианты, в т.ч. UNION, ничего не получается

Решение задачи: «К записям из одной таблицы выбрать количество соответствующих записей из двух других таблиц»

textual
Листинг программы
  1.  SELECT u.id, u.email, u.name, COUNT(DISTINCT o.id) as zakazy, COUNT(DISTINCT f.id) as favs
  2.  FROM users as u
  3.  LEFT OUTER JOIN orders as o on o.email=u.email
  4.  LEFT OUTER JOIN favorites as f on u.id=f.user_id
  5.  GROUP BY u.id
  6.  ORDER BY u.id Desc

Объяснение кода листинга программы

В данном коде:

  1. Выполняется запрос SELECT к базе данных.
  2. В результате выбираются следующие поля: id, email, name пользователя, а также два подсчета: zakazy и favs.
  3. Для выполнения операции подсчета используются функции COUNT и DISTINCT.
  4. Используется оператор LEFT OUTER JOIN для объединения таблиц users, orders и favorites по соответствующим полям. 5.GROUP BY применяется к полю id пользователя.
  5. Результаты сортируются по убыванию id пользователя с помощью оператора ORDER BY. Таким образом, данный запрос выбирает информацию о пользователях из таблицы users, а также подсчитывает количество заказов и предпочтений для каждого пользователя, которые были сделаны другими пользователями.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы