SQL Несколько операторов SELECT в одном запросе

У меня есть следующая таблица, называемая утверждающим:

я бы подчиненный_id id_лидера main_leader_id 1 3 2 1 1 6 5 4

И таблица под названием user:

я бы ФИО Телефон 1 Пауло 2123 2 Маркос 3322 3 Леандро 43565 4 Любая Морейра 23454 5 Мария С 43432 6 Хосе Олив 454567

Я хотел бы сделать запрос, который выводит имена пользователей вместо идентификаторов таблицы утверждающих, например:

подчиненный лидер main_leader Леандро Маркос Пауло Хосе Олив Мария С Любая Морейра

Я попытался со следующим запросом, но я получаю только одно имя за раз:

SELECT 
    U.full_name as subordinate
FROM user AS 
    U
INNER JOIN 
    approver as A 
ON 
    (A.subordinate_id = U.id);

Введите здесь описание изображения

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

MySQL и PostgreSQL — две совершенно разные СУБД с разным синтаксисом и функциональностью. Маловероятно, что вы используете их оба одновременно. Пожалуйста, отредактируйте свой пост и удалите тег, который на самом деле не применяется. Если вы не уверены, какую РСУБД вы используете, не пытайтесь писать SQL, пока не разберетесь.

Ken White 21.11.2022 04:17

Я удалил тег PostgreSQL, так как я предполагаю, что этот вопрос касается MySQL. Пожалуйста, исправьте теги, если это предположение неверно.

The Impaler 21.11.2022 04:33

Tks @TheImpaler извините за неправильные теги!

dev user 21.11.2022 05:18

Спасибо @KenWhite! извините за неправильные теги!

dev user 21.11.2022 05:19
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Доступ AWS Java Lambda к экземпляру AWS RDS MySQL с помощью CDK
Доступ AWS Java Lambda к экземпляру AWS RDS MySQL с помощью CDK
В этой статье мы рассмотрим, как включить доступ Java Lambda к экземпляру AWS RDS MySQL.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
4
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Посмотрите, работает ли это. Вы присоединяетесь к пользовательской таблице только один раз, поэтому вы только один раз декодируете ее.

SELECT u1.full_name AS subordinate,
u2.full_name AS leader,
u3.full_name AS main_leader

FROM approver AS a
INNER JOIN user AS u1
ON a.subordinate_id = u1.id

INNER JOIN user AS u2
ON a.leader_id = u2.id

INNER JOIN user AS u3
ON a.main_leader_id = u3.id

Просто заметка. Когда одна и та же таблица объединяется несколько раз, очень важно каждый раз добавлять разные «псевдонимы». В этом случае решения используют u1, u2 и u3 для одной и той же таблицы user.

The Impaler 21.11.2022 04:31

Большое спасибо все получилось! и что именно вы подразумеваете под: когда одна и та же таблица объединяется несколько раз, важно каждый раз добавлять другой «псевдоним»? спасибо!!!!

dev user 21.11.2022 05:07

Другие вопросы по теме