MySQL の 3 つのテーブルからデータを取得し、それらの列名を変更/マージしようとしています。現在、AS
それらを使用して列名を設定すると、重複して入ってきます。
人の表:
id applicant_id employee_id
---------------------------------
1 3 6
2 4 10
3 12 30
申請者表:
id applicant_id applicant_note applicant_note_date
-----------------------------------------------------------
1 3 "Was good" 2013-05-01
1 4 "Was so-so" 2013-06-07
2 4 "Was bad" 2013-06-08
3 4 "Was great" 2013-06-10
従業員表:
id employee_id employee_note employee_note_date
--------------------------------------------------------
1 10 "Was ok" 2013-07-20
1 10 "Was great" 2013-07-21
2 30 "Was bad" 2013-08-01
3 30 "Was so-so" 2013-08-02
私が持っているのは だけですemployee_id
。従業員と応募者の両方からすべてのメモを取得していることを確認したいのですが、NULL
値を持つ列が重複するのではなく、それらを同じ列にマージしたいと考えています。以下のような結果を返したい:
note date type
------------------------------------------------
"Was so-so" 2013-06-07 applicant
"Was bad" 2013-06-08 applicant
"Was great" 2013-06-10 applicant
"Was ok" 2013-07-20 employee
"Was great" 2013-07-21 employee
私が今いる場所は次のとおりです。
SELECT
applicants.applicant_note AS note,
applicants.applicant_note_date AS date,
employees.employee_note AS note,
employees.employee_note_date AS date
IF(applicants.applicant_id IS NULL, 'employee', 'applicant') as type
FROM
employees
JOIN
people
ON
people.employee_id = employees.employee_id
JOIN
applicants
ON
applicants.applicant_id = people.applicant_id
WHERE
employees.employee_id = 10
SQL のみを使用してこれを達成する方法はありますか? または、従業員 ID で応募者 ID を取得するために、別のクエリを実行する必要がありますか?