0

SQL で 2 つの列を比較したい

oldname   newname empid
j11       j12
j12       j13
j13

特定の証明書を取得した従業員のリストを取得したいと考えています。emp1 が j11 証明書を作成したが、後で証明書名が j12 に変更されたとします。その従業員はまだ認定されている必要があります。後で j12 が j13 に変更された場合でも、その従業員は認定済みと見なされます。

4

2 に答える 2

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 = ?
于 2012-05-22T14:01:23.610 に答える
0

次の 3 つのテーブルが必要です。

  1. 従業員 (employeeId)
  2. 証明書 (certificateId)
  3. EmployeeCertificates (従業員を証明書にリンク)

従業員と証明書と不変の識別子を指定すると、名前が変わっても問題になりません (これは、リレーショナル データベースを構築する際の重要な設計原則です)。

于 2012-05-22T13:07:07.903 に答える