私は4つのテーブルインナーは、名前の代わりにID
Table incidences-employees
---------------------------
idIncidenceEmployee PK
idEmployee FK (employee.idemployee)
idMasterIncidence FK (incidence-master.idIncidence)
createdby FK (user-employee.idMongoUser)
authorizedBy FK (user-employee.idMongoUser)
Table incidence-master
---------------------------
idIncidence PK
name
TAble user-employee
--------------------------
idMongoUser PK
idEmployee
Table EMployee
-------------------------
idEmployee Pk
name
lastName
を持っているを取得し、私はこのクエリ
SELECT employee.name, incidences-master.name, incidences-employees.*
FROM employee-incidences
INNER JOIN employee ON employee.idEmployee = employee-incidences.idEmployee
INNER JOIN incidences-master ON incidences-master.idIncidence = employee-incidences.idIncidenceEmployee
が、私はこの
Employee name | Incidence name | idIncidenceEmployee | idEmployee | idMasterIncidence | createdby | authorizedBy
John Doe | Incidence Name | 1 | 1 | 5 | abc123 | abc123
しかしによって作成され、authorizatedに乗るん複数のテーブルを結合します私はIDを取得する、abc123、私が望むのはidと名前をマッチさせること、idはテーブル上にあるuser-employee
Table user-employee Table Employee
---------------------- - -------------------
idMongoUser -> abc123 idEmployee -> 1
idemployee -> 1 Name -> John Doe
idの代わりにJohn Doeを表示します。
Jayveeに参加代わりに結合を使用することをお勧めしたいです、基本的に以前の回答を反映させるつもりなら、それを少なくとも認めてもいいでしょう。私は彼に全体の質問を渡すのではなく、解決する方法に彼を導くアプローチをとった。私たちのアプローチのどちらも、より正しかったり間違ったりしていません...それでも...それに留意してください。ありがとう。 – nycdan
私のアプローチの主な違いは、使用していない、またはあなたの答えに使用することを提案しているジャンクションテーブル(user-employee)があることです。 – Jayvee
'e1.name as createdBy、e2.name'では、incidences-master.nameとは対照的に、どのテーブルを参照しているのかをmysqlがどのように知っていますか?明示的にテーブル名は –