Застрял на исправлении этого запроса, ошибки в двух командах, которые я написал

EMPLOYEE (fname, minit, lname, ssn, birthdate, address, sex, salary, superssn, dno)
KEY: ssn

DEPARTMENT (dname, dnumber, mgrssn, mgrstartdate)
KEY: dnumber.

PROJECT (pname, pnumber, plocation, dnum)
KEY: pnumber.

WORKS_ON (essn, pno, hours)
KEY: (essn, pno)

DEPENDENT (essn, dependent-name, sex, bdate, relationship)
KEY: (essn, dependent-name)

Так что я просто смущен тем, как добавить больше материалов в команду выбора, скажем, добавить SSN

Я хочу найти фамилию и имя всех менеджеров, которые работают над проектом № 47:

SELECT lname, fname
FROM   employee e, department d
Where d.mgrssn  = e.ssn
WHERE  e.ssn IN (SELECT w.essn
                       FROM   works_on w, project p
                       WHERE  w.pno  = p.pnumber
                                AND     w.pno ='47'
                               );

Но теперь я хочу добавить ssn к нему:

SELECT lname, fname, ssn
FROM   employee e, department d
Where d.mgrssn  = e.ssn
WHERE  ssn IN (SELECT w.essn
                       FROM   works_on w, project p
                       WHERE  w.pno  = p.pnumber
                                AND     w.pno ='02'
                               );

1 ответ

Решение

Не могли бы вы попробовать это?

select * from employee e,works_on w,department d 
where e.ssn=d.mgrssn and e.ssn=w.essn and w.pno = 47

редактировать с помощью объединений

select * from employee 
join works_on on employee.ssn=works_on.essn 
join department on employee.ssn=department.mgsrssn
wher works_on.pno=47
Другие вопросы по тегам