Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于sqlserver中的字段从主表获取值_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

基于sqlserver中的字段从主表获取值

基于sqlserver中的字段从主表获取值,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我想根据事务表的不同列值从主表中检索值 我的master表将包含用户名、名、姓 我的事务表将具有Id、CreatedUser、updateuser 所以我希望查询从sql server获取报告,从createruser的主表中获取FirstName,lastName,从updateuser的主表中获取FirstName,lastName 例: 主表 User ID First Name Last Name cer001 Ds CV cer002 vb av 事务表 id Creat

我想根据事务表的不同列值从主表中检索值

我的
master
表将包含
用户名、名、姓

我的
事务
表将具有
Id、CreatedUser、updateuser

所以我希望查询从sql server获取报告,从createruser的主表中获取FirstName,lastName,从updateuser的主表中获取FirstName,lastName

例: 主表

User ID First Name  Last Name
cer001  Ds  CV
cer002  vb  av
事务表

id  CreatedUser UdatedUser
2323    cer001  cer002
所以报告应该得到如下结果

Id  CreatedUser UpdatedUSer
2323    Ds,CV   Vb,av

它应该是明智的性能也很好。请帮助如何获取您正在寻找的
自加入

select 
      t.Id, m.FirstName +','+m.LastName as  CreatedUser,
      mm.FirstName +','+mm.LastName as  UpdatdUser
from Master m
inner join Transaction  t on t.CreatedUser = m.[User ID]
inner join Master mm on mm.[User ID]= t.UpdatedUser 

您应该尝试从事务表到主表的左联接。 留下来处理任何空值

查询将被删除

create table [Master] ([User ID] varchar(10), [First Name] varchar(10), [Last Name] varchar(10));
insert into [Master] values
('cer001','Ds','CV'),('cer002','vb','av')


create table [Transaction] (id  int, CreatedUser varchar(10),UpdatedUser varchar(10))
insert into [Transaction] values
(2323, 'cer001','cer002');

select 
ID=T.id,
CreatedUser= ISNULL (M1.[First Name],'')+ ','+ISNULL(M1.[Last Name],'' ),
UpdatedUser= ISNULL (M2.[First Name],'')+ ','+ISNULL(M2.[Last Name],'')

from
[Transaction] T
LEFT JOIN
[Master] M1
   ON T.CreatedUser =M1.[User ID]  
LEFT JOIN
[Master] M2
   ON T.UpdatedUser =M2.[User ID] 

也许您可以尝试使用下面的子查询

Select
 t.id,
 (Select TOP 1 Rtrim(m.[First Name])+','+RTRIM(m.[Last Name]) from [Master] m where m.[User ID] = t.CreatedUser) as CreatedUser,
  (Select TOP 1 Rtrim(m.[First Name])+','+RTRIM(m.[Last Name]) from [Master] m where m.[User ID] = t.UpdatedUser) as UpdatedUser
from [Transaction] t

请通过sql中的
联接