我想比较SQL中的两列
oldname newname empid
j11 j12
j12 j13
j13
我想获取已完成某些证书的员工列表。 假设emp1已经完成了j11证书,但后来证书名称更改为j12。该员工仍应获得认证。稍后如果j12更改为j13,该员工仍应被视为已认证。
答案 0 :(得分:0)
你应该有三张桌子:
如果您提供员工和证书以及不变的标识符,那么它们的名称是否发生变化并不重要(这是构建关系数据库时的一个重要设计原则)。
答案 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 = ?