-1

このクエリは、1 つのテーブル内の 2 つの ID を接続することに関するものです。

表:雇用主

Employee no.  Lastname  Firstname  reports to  title
111           Garret    Mike       333         sales manager
333           Frank     Savage     444         President

私の質問は、このテーブルをどのように接続するのですか?

テーブルは次のようになります。

Employee no.  Lastname  Firstname  reports to(Supervisor No.)  Firstname   Lastame
111           Garret    Mike       333                         Frank       Savage

私は試した:

Select Employee no., Lastname, Firstname, reports to AS SuperVisorNumber, firstname, lastname From Employer
Where Employer.reports to =Employeeno.reports to

これはほんの一例です。スペルミスなどは気にしないでください。

4

1 に答える 1

2

テーブルをそれ自体に結合する必要があります。

select e1.Employeeno,
  e1.lastname EmpLastName,
  e1.firstname empFirstName,
  e1.reportsto,
  e2.firstname MgrFirstName,
  e2.lastname MgrLastName
from employer e1
inner join employer e2
  on e1.reportsto = e2.employeeno

デモで SQL Fiddle を参照してください

社長を含むすべての従業員を表示する場合は、次のように変更しますLEFT JOIN

select e1.Employeeno,
  e1.lastname EmpLastName,
  e1.firstname empFirstName,
  e1.reportsto,
  e2.firstname MgrFirstName,
  e2.lastname MgrLastName
from employer e1
left join employer e2
  on e1.reportsto = e2.employeeno

デモで SQL Fiddle を参照してください

よりわかりやすいテーブル エイリアスを使用する場合は、次のようなものを使用できます。

from employer employee
left join employer manager
  on employee.reportsto = manager.employeeno
于 2012-10-12T21:47:24.190 に答える