0
メインクエリに2つのテーブルを結合する方法がわかりません。なぜなら、それぞれ異なる状況の3つのメインテーブルにそれぞれ参加するからです。同じテーブルを複数のテーブルに結合する3つの異なる条件。 mysql
私は3つの事項に基づいてアカウントコードを決定しようとしています。以下のメインテーブルを参照してください。 アカウントコードは、3つの異なるテーブルである支払いコード、部門および従業員タイプに基づいています。ここで
accountcodes.paycode_id = employee_pay.paycode_id
accountcodes.department_code = department.code
accountcodes.emp_type_id = employee_infos.emp_type_id
は、私は、多くの異なる条件に次の2つのテーブルを結合するために必要な、私は
SELECT i.id, i.emp_type_id, m.code as deptartment
FROM employee_pay e1
INNER JOIN employee_infos i ON e1.employee_infos_id = i.id
INNER JOIN department m ON i.co_cost_center_matrix_id = m.id
これらのテーブルを結合する方法です。
テーブルは:
-----------------------------------------------------------------------
| ID | lkp_accountcodes_id | paycode_id | department_code | emp_type_id |
|--------------------------|------------|-----------------|-------------|
| 1 | 21 | 15 | 120 | 1 |
|--------------------------|------------|-----------------|-------------|
| 2 | 22 | 15 | 310 | 1 |
|--------------------------|------------|-----------------|-------------|
| 3 | 23 | 30 | null | 1 |
|--------------------------|------------|-----------------|-------------|
| 4 | 24 | 30 | null | 2 |
|--------------------------|------------|-----------------|-------------|
| 5 | 25 | 55 | 120 | 1 |
|--------------------------|------------|-----------------|-------------|
| 6 | 26 | 55 | 310 | 2 |
|--------------------------|------------|-----------------|-------------|
| 7 | 27 | 55 | 120 | 2 |
-----------------------------------------------------------------------
テーブルをaccountcodes:lkp_accountcodes
-----------------------------------
| id | company_id | accountcode |
|-----|------------|----------------|
| 21 | 500 | 5210 |
|-----|------------|----------------|
| 22 | 500 | 6210 |
|-----|------------|----------------|
| 23 | 500 | 2211 |
|-----|------------|----------------|
| 24 | 500 | 2210 |
|-----|------------|----------------|
| 25 | 500 | 5010 |
|-----|------------|----------------|
| 26 | 500 | 6000 |
|-----|------------|----------------|
| 27 | 500 | 5090 |
-----------------------------------
は、内側 accountcodesから選択*私にはありませんa.lkp_accountcodes_id = lac.id
にlkp_accountcodesのLACに参加3つの左結合を実行するか、または一時テーブルを作成する必要があるかどうかを確認します。
何 についてLEFT OUTER JOINのaccountcodes A1 ON a1.co_payroll_code_id = hd.co_payroll_code_idとa1.lkp_emp_type_id = i.lkp_emp_type_idとa1.co_cost_center_id = cc1.code – nick