2013-04-25 134 views
1

我有两种类型的表组织OrgLogin。使用连接连接两个或多个表

组织:

ID 
Name 

OrgLogin:

LoginId 
UserName 
Password 

我想和组织中的表的用户名和密码选择查询。所以我使用了联接。

我的查询,

select top(55)'Insert into Organizations(Id,Username,Password,Name)values(' + 
     Cast(o.organizationId as varchar(50))+',''' + 
     IsNull(''''+ol.UserName+'''', 'NULL')+','+ 
     isnull(convert(nvarchar(max),HASHBYTES('MD5',ol.Password),1),'NULL')+ ')' 
    FROM Organization AS o 
    left join OrgLogin As ol ON ol.LoginId=o.OrganizationID 

我有以下结果集,

Insert into Organizations(Id,CreateDate,Username,Password)values(1,'NULL,NULL) 

Insert into Organizations(Id,CreateDate,Username,Password)values(2,'NULL,NULL) 

Insert into Organizations(Id,CreateDate,Username,Password)values(3,'NULL,NULL) 

Insert into Organizations(Id,CreateDate,Username,Password)values(4,'NULL,NULL) 

Insert into Organizations(Id,CreateDate,Username,Password)values(5,''V EX Electronics Systems Pvt.Ltd.Chennai',0xACB3BB721E1EC47C4CB569331ACC4E8E) 

Insert into Organizations(Id,CreateDate,Username,Password)values(5,''V EX Electronics Systems Pvt.Ltd.Chennai',0xACB3BB721E1EC47C4CB569331ACC4E8E) 

ID是重复看到 '5' 标识。两次创建。为什么它发生?任何想法?

回答

0

你应该整理一下单引号(第一ISNULL之前)

select top(55)' 
    Insert into Organizations(Id,Username,Password,Name)values(' + 
    Cast(o.organizationId as varchar(50))+',' + 
    IsNull(''''+ol.UserName+'''', 'NULL')+','+ 
    isnull(convert(nvarchar(max),HASHBYTES('MD5',ol.Password),1),'NULL')+ ')' 
FROM Organization AS o 
left join OrgLogin As ol ON ol.LoginId=o.OrganizationID 

接下来,o.id会重复每当有该组织多个OrgLogin记录。

+0

所以如何避免o.id不应该重复。因为Organizationid是唯一的。 – PoliDev 2013-04-25 06:37:25