比较sql中的列

时间:2012-05-22 12:59:51

标签: sql-server compare

我想比较SQL中的两列

oldname   newname empid
j11       j12
j12       j13
j13

我想获取已完成某些证书的员工列表。 假设emp1已经完成了j11证书,但后来证书名称更改为j12。该员工仍应获得认证。稍后如果j12更改为j13,该员工仍应被视为已认证。

2 个答案:

答案 0 :(得分:0)

你应该有三张桌子:

  1. 员工(employeeId)
  2. 证书(certificateId)
  3. EmployeeCertificates(将员工链接到证书)
  4. 如果您提供员工和证书以及不变的标识符,那么它们的名称是否发生变化并不重要(这是构建关系数据库时的一个重要设计原则)。

答案 1 :(得分:0)

你的表结构应该像web_bod所说的那样。 您的查询应如下所示:

SELECT employeeid, name FROM
    Employees e INNER JOIN EmployeeCertificates ec ON e.id = ec.employeeId
    INNER JOIN Certificates c ON c.id = ec.certificateId
WHERE Certificates.id = ?