Всем привет! Я новичок, на данный момент изучаю MySql. Попалась задачка, хотелось бы посоветоваться по поводу решения. Итак, задачка: У каждого отца всегда только один сын. Сыновья в свою очередь также могут быть отцами. Необходимо написать запрос , чтобы получить пользователя вместе с его отцом и сыном. При этом таблица должна быть одна. Есть такое решение: Таблица users с полями id, name, son_id, father_id Решение: SELECT table2.users AS users, table2.son AS son, users.name AS father FROM (SELECT table1.name AS users, table1.father_id AS father_id, users.name AS son FROM users AS table1 LEFT JOIN users ON users.id=table1.son_id) AS table2 LEFT JOIN users ON table2.father_id=users.id Но хотелось бы его упростить. Ведь столбец father_id как бы и не нужен. Кто кому кем приходится можно узнать и с помощью son_id. И вот если мы убираем father_id, то у меня получается вывести только либо name и son, либо name и father Либо получаем отцов: SELECT *, user.name as father_name FROM user JOIN user as father ON father.id=user.son_id Либо сыновей: SELECT *, user.name as son_name FROM user JOIN user as son ON son.son_id=user.id
а тебя не смущает, что ты делаешь джоин при условии, что таблица должна быть одна? --- Добавлено --- как я понимаю тут просто группировка должна быть или тупо where id = 5 and father_id = 5 показываем папу и всех сыновей папы с пятым айдишником