0

尊敬するユーザーの皆様

私は次のように従業員と呼ばれる1つのテーブル

EmpId | EmpName | ManagerId
 1        Smith    10
 2        John     11
 10       Ted       2
 11       Lowson    1  

すべての従業員にはマネージャーがいます。各マネージャーは従業員です。

ここで、すべての従業員の名前とそのマネージャーの名前のようなクエリを書きたいと思います。

こんな感じでやってみました>>>

select a.EmpName,b.EmpName from Employee a,b where b.ManagerId=a.EmpId

しかし失敗しました。

親切に私を導いてください。

4

6 に答える 6

2

これを試して、、

select 
t1.EmpName as EmoName, t2.EmpName as ManagerName
from   Employee t1 
LEFT join Employee t2 on t1.ManagerId = t2.EmpId
于 2012-12-20T12:23:14.927 に答える
2

これを試して ::

select 
t1.EmpName as EmoName, t2.EmpName as ManagerName
from   Employee t1 
LEFT join Employee t2 on t1.ManagerId = t2.EmpId
于 2012-12-20T12:20:25.910 に答える
0

これを試してみてください

select a.EmpName,b.EmpName from Employee a, Employee b where b.ManagerId=a.EmpId
于 2012-12-20T12:37:08.803 に答える
0
select 
 group_concat(t2.EmpName SEPARATOR ',') AS empName,t1.ManagerId from 
  Employee t1 join Employee t2 on t1.ManagerId = t2.EmpId
  where t1.ManagerId = 0
 group by t1.ManagerId

次のように結果が得られます

EmpName (Lowson,Td,Jon) Manager (MangerName)

したがって、結果は1行のみになります

于 2012-12-20T12:23:20.017 に答える
0

宿題のように聞こえます:

あなたのステートメントにはFROM節がありません。そして、あなたは読んでくださいJOINs。各従業員のマネージャーを取得するには、テーブルをそれ自体に結合する必要があります。別のヒント(他のすべての回答がその点で失敗するため):必要になりますLEFT JOIN

于 2012-12-20T12:19:21.410 に答える
0

その最も基本的なところで...

select emp.EmpName, mgr.EmpName
from Employee emp, Employee mgr
where emp.ManagerId = mgr.EmpId

マネージャーがいない従業員などをカバーするために、これよりも複雑な何かが必要になる可能性が高いですが、このクエリはあなたにとっての出発点です。

于 2012-12-20T12:20:26.330 に答える