miker059
@miker059
Коротко не получится

Как построить запрос в MySQL?

Доброго времени суток, Друзья-товарищи!

Подскажите, пожалуйста, как составить такой вот запросик чисто на SQL, а также в Laravel в контроллере?
Задача такая, есть две таблички
1 таблица - Пользователи, в ней например столбцы - id, name, age(возраст), ref_id(id пользователя в этой же таблице, который над этим пользователем), group_id (какой группе принадлежит пользователь)
2-таблица - Группы, в ней столбцы - id, name

Ну и собственно нужно сделать такой запрос чтобы выбрать пользователей, у которых возраст больше чем у пользователя указанного у них в ref_id, при этом выбрать поля - name, age, а также указать имя группы к которой принадлежит этот пользователь.

примеры таблиц:
1 таблица:
  1. Петров | 22 | 0 | 1
  2. Иванов | 23 | 1 | 1
  3. Сидоров | 20 | 1 | 2
  4. Макеев | 24 | 2 | 1


2 таблица:
  1. Группа 1
  2. Группа 2
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
AK-VoronM
@AK-VoronM
"Мало-мало программист"
"SELECT u1.name, u1.age, g.name as group FROM users as u1 
LEFT JOIN users as u2 
ON u1.ref_id = u2.id 
LEFT JOIN group as g 
ON u1.group_id = g.id 
WHERE u1.age > u2.age"


Если с индексами все нормально, будет работать довольно быстро.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы