Соединить два столбца одной таблицы с одним и тем же столбцом другой таблицы - PullRequest
0 голосов
/ 03 октября 2018

У меня есть две таблицы «Пользователь» и «Задача».

User Table                    
int id
fname
lname

Task Table
int id
int assigned_by
int assigned_to

assign_by и assign_to для хранения значений идентификатора пользователя. Мне нужно отобразить значения assign_by и assign_to в одном запросе.

select u.fname+ +u.lname 
from user u,task t 
where u.id=t.assigned_by;

Как добавить u.id = t.assigned_to в тот же запрос.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Используйте явное объединение и concat для добавления строки

select concat(u1.fname ,u2.lname) as assigned_by_name,
 concat(u2.fname,u2.lname) as assigned_to_name
from task t 
join user u1 on u1.id = t.assigned_by
join user u2 on u2.id = t.assigned_to

Примечание. Избегайте этого старого метода объединения from user u,task t where u.id=t.assigned_by

0 голосов
/ 03 октября 2018

Вам необходимо дважды присоединиться к таблице user с разными псевдонимами

select CONCAT_WS(' ', u_by.fname, u_by.lname) as by_name,
       CONCAT_WS(' ', u_to.fname, u_to.lname) as to_name
from task t 
join user u_by on u_by.id = t.assigned_by
join user u_to on u_to.id = t.assigned_to
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...