【问题标题】:using joins combine two or more tables into one Table使用连接将两个或多个表组合成一个表
【发布时间】:2013-04-30 10:48:00
【问题描述】:

我有两种类型的数据库,例如,

Db1:

度数

  • 身份证
  • 姓名
  • 类型

资格:

  • 身份证
  • 候选人身份
  • 学位ID
  • 专业化

DB2:

UG_LIST:

  • 姓名

  • ID

PGLIST:

  • 姓名

  • ID

博士名单:

  • 姓名

  • ID

这里的Degrees表是单张的。所有学位,如 Ug、Pg、博士学位都存储在名为 Degrees 的单个表中。但在数据库 -2 中,每个项目都创建为单独的表。所以我必须将这三个表值存储到 Qualifications 表中。

我为此使用了连接。但我无法为此创建选择查询。

SELECT top(50) 'INSERT INTO CandidateQualifications(candidateId,DegreeId,specialization) VALUES('+

     Cast(c.CandidateID as varchar(50))+',''' +
    Isnull(Cast(u.Id as varchar(50)),'NULL') Or cast(p.Id as varchar(50)) or cast(d.Id as varchar(50))+','+
    IsNull(''''+c.ugspecification+'''', 'NULL')+')'
  FROM  candidatedetails as c 
  right join UG_List As u ON c.qualification=u.UGName
  right join PG_List As p ON c.qualification=u.pgname
  right join Docorate_List As d ON c.qualification=u.docorate

请告诉我该怎么做?我使用 Or 运算符,但它不接受。

有什么想法吗?

【问题讨论】:

  • 嘿,你能稍微澄清一下这个问题吗?像标题我应该加入两个或多个表来形成一个字段(是这个字段吗?)。你想达到什么目的?
  • 我编辑我的问题。不,它不是一个领域。这是一张桌子。

标签: sql sql-server join operators


【解决方案1】:

替换:

Isnull(Cast(u.Id as varchar(50)),'NULL') Or cast(p.Id as varchar(50)) or cast(d.Id as varchar(50))

与:

Cast(Coalesce(u.Id,p.Id,d.Id)as varchar(50))

我希望连接是left

SELECT top(50) 'INSERT INTO CandidateQualifications(candidateId,DegreeId,specialization) VALUES('+

     Cast(c.CandidateID as varchar(50))+',''' +
     Cast(Coalesce(u.Id,p.Id,d.Id)as varchar(50))+','+
     IsNull(''''+c.ugspecification+'''', 'NULL')+')'
  FROM  candidatedetails as c 
  LEFT join UG_List As u ON c.qualification=u.UGName
  LEFT join PG_List As p ON c.qualification=p.pgname
  LEFT join Docorate_List As d ON c.qualification=d.docorate

【讨论】:

  • @Duk 看看加入并在必要时编辑我的帖子,我不知道条件...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 2014-11-11
  • 2016-12-20
相关资源
最近更新 更多