2017-02-27 10 views
1

私はMy SQL Workbenchにコード行を持っていますが、エラーコード:1242が表示されます。副問合せは2行以上を返します。エラーコード1242を取り除く方法

SELECT Fname, Lname, Dnum, Pno 
FROM EMPLOYEE e, PROJECT p, WORKS_ON w 
WHERE p.Dnum = (SELECT Dno FROM EMPLOYEE WHERE e.Ssn = w.Essn AND w.Pno = p.Pnumber) 

自分の部門が主催していないプロジェクトで働いている従業員のテーブルを表示しようとしています。

答えて

1

この

SELECT Fname, Lname, Dnum, Pno 
FROM EMPLOYEE e, PROJECT p, WORKS_ON w 
WHERE p.Dnum in (SELECT Dno FROM EMPLOYEE WHERE e.Ssn = w.Essn AND w.Pno = 
p.Pnumber); 

使用in句が=

+0

それが働きましたの!どのような訂正を行いましたか?また、ステートメントの最後にセミコロンを使用する必要がありますか? –

+0

look updated answers – denny

0

最適化されたクエリinstadしてみてください:

SELECT Fname, Lname, Dnum, Pno 
FROM EMPLOYEE e 
INNER JOIN WORKS_ON w ON e.Ssn = w.Essn 
INNER JOIN PROJECT p ON w.Pno = p.Pnumber AND p.Dnum = e.Dno 
+0

重複した行を返すことがあります。 (テーブルのデータによります。) – jarlh

関連する問題