私は手作業で書く必要がある多くのSQL文をカバーする私のDB試験を勉強しています。以下は、私の本に記載されている2つのシナリオのスキーマ図とソリューションで、私には分かりません。これらの2つのSQLクエリを私に説明できますか?
Q13:ProductXプロジェクトで、週10時間以上働く部門5の全従業員の名前を取得します。
SELECT FNAME, LNAME
FROM EMPLOYEE,PROJECT, WORKS_ON
WHERE DNO = 5 AND PNAME = ‘PRODUCT X’ AND HOURS>10 AND ESSN=SSN;
はは、WHERE句はPNO = NUMBERを含めるべきではないでしょうか。 WORKS_ONテーブルには、これを含まないでPROJECTテーブルを参照する方法はありますか? ESSN = SSNを参照しているからですか?
Q1:従業員と同姓で、同姓の従業員を持つ従業員の名前を取得します。
SELECT E.FNAME, E.LNAME
FROM EMPLOYEE AS E
WHERE E.SSN IN (SELECT D.ESSN FROM DEPENDENT AS D WHERE E.FNAME = D.DEPENDENT_NAME AND D.SEX = E.SEX);
私はWHERE句までのすべての方法まで、このクエリを理解しています。私はE.SSN INがそれより前のサブクエリで何をしようとしているのか分かりません。誰かがこれを説明することができれば、それは素晴らしいことでしょう。 Q13については
コンマ区切りの構文を使用しないでください。相関のないサブクエリと非相関のサブクエリを参照してください。 – Strawberry
MySQLまたはMS SQL Serverを使用していますか? (関連していない商品にタグを付けないでください) – jarlh