2016-10-16 21 views
0

私はこのジレンマにいます:ここにはレコードがあるテーブルがあります。従業員テーブルの上司である従業員を表示するSQLクエリ

最後の列にはスーパーバイザがあり、最初の列を参照します。

スーパーバイザであるすべての従業員を選択して、それぞれの姓と名を表示する方法を教えてください。ここで

は、あなたがこの(好ましい方法)を行うためにEXISTSを使用することができ、テーブル

enter image description here

答えて

1

ある

JOINを使用して INオペレータ

SELECT * 
FROM yourtable t1 
WHERE t1.EMPLOYEEID IN (SELECT t2.EMPSUPERVISOR 
         FROM yourtable t2) 

を使用して

SELECT * 
FROM yourtable t1 
WHERE EXISTS (SELECT 1 
       FROM yourtable t2 
       WHERE t1.EMPLOYEEID = t2.EMPSUPERVISOR) 

SELECT t1.* 
FROM yourtable t1 
     JOIN (SELECT DISTINCT EMPSUPERVISOR 
      FROM yourtable) t2 
     ON t1.EMPLOYEEID = t2.EMPSUPERVISOR 
0

私が言う:

SELECT EMPLNAME , EMPLFNAME 
    FROM THETABLE 
    WHERE EMPLOEEID IN (SELECT DISTINCT EMPSUPERVISOR 
         FROM THETABLE 
        ) 
; 
関連する問題