我有两个表User和Task。
User Table
int id
fname
lname
Task Table
int id
int assigned_by
int assigned_to
assigned_by和Assigned_to存储用户的id值。我必须在同一查询中显示assigned_by和assigned_to值。
select u.fname+ +u.lname
from user u,task t
where u.id=t.assigned_by;
如何在同一查询中添加u.id = t.assigned_to。
答案 0 :(得分:2)
您需要使用不同的别名将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
答案 1 :(得分:1)
使用显式连接和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