1

テーブルの従業員には、ssnおよびsuperssn列があります。各従業員の上司の監督者を表示したい(存在しない場合はnull)。これまでのところ、私には各従業員の監督者しかいません。

SELECT p.fname AS sup,
group_concat(c.fname) AS emp 
FROM employee AS p
LEFT JOIN employee AS c 
ON (p.ssn = c.superssn) 
GROUP BY p.ssn;

私は別のことをすべきJOINですか?または何かGROUP BY

4

1 に答える 1

1

マネージャー、従業員、そしてマネージャーの上司が必要な場合は、テーブルにemployee複数回参加できます。

SELECT p.fname AS sup,   -- Manager
    group_concat(c.fname) AS emp,  -- Employees
    sp.fname as SuperSuper   -- Manager Supervisor
FROM employee AS p
LEFT JOIN employee AS c 
    ON p.ssn = c.superssn
LEFT JOIN employee sp
    on p.superssn = sp.ssn
GROUP BY p.ssn;
于 2013-01-22T17:15:08.450 に答える