我有一个包含任务详细信息的表格和一个包含用户详细信息的表格。 每个任务与users表有两个关系如下:
任务表:TaskID,名称,描述,TaskCreatorId,TaskPICId 用户表:UserId,姓名,电子邮件 其中TaskCreatorId链接到UserId,而TaskPICId也链接到UserId。 现在我如何进行查询以列出具有Taskcreator名称和TaskPIC名称的所有任务 Tasks table
答案 0 :(得分:2)
您需要在两个不同的位置将用户信息加入任务信息。
SELECT
t.TaskID,
t.Name,
t.Description,
t.TaskCreatorId,
u1.Name as TaskCreatorName,
u1.[E-mail] as TaskCreatorEMail,
t.TaskPICId,
u2.Name as TaskPICName,
u2.[E-mail] as TaskPICEMail
FROM
Tasks t
LEFT JOIN Users u1 ON u1.userId = t.TaskCreatorId
LEFT JOIN Users u2 ON u2.userId = t.TaskPICId
答案 1 :(得分:0)
尝试调整一下:
declare @tuser as table (id int , name varchar(10))
declare @ttask as table (tid int , cid int )
insert into @tuser(id,name) values(1,'a')
insert into @tuser (id,name)values(2,'b')
insert into @ttask values(1,2)
select u.name as nm1 , u1.name as cname, t.* from @ttask t left join @tuser u on u.id = t.tid
left join @tuser u1 on u1.id= t.cid