【问题标题】:Comparing columns in sql比较sql中的列
【发布时间】:2012-05-22 12:59:50
【问题描述】:

我想比较 SQL 中的两列

oldname   newname empid
j11       j12
j12       j13
j13

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

【问题讨论】:

  • 你能展示一下你的员工表的结构吗?

标签: sql-server compare


【解决方案1】:

你应该有三个表:

  1. 员工 (employeeId)
  2. 证书 (certificateId)
  3. EmployeeCertificates(将员工链接到证书)

如果你给员工和证书以及不变的标识符,那么他们的名字是否改变都没有关系(这是你构建关系数据库时的一个重要设计原则)。

【讨论】:

    【解决方案2】:

    你的表结构应该像 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 = ?
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      相关资源
      最近更新 更多