Czyli musisz użyć instrukcji JOIN, ale wtedy musisz mieć w tych tabelach pola łączące obydwie tabele. Pokaż strukturę tabel to będzie można coś więcej powiedzieć.
SELECT S.Staff_Id, S.First_Name, S.Last_Name, S.Phone
FROM Staff S
INNER JOIN Classe C ON C.Staff_Id=S.Staff_Id
WHERE S.Phone is null and C.Start_Time = '14:00'
warunek po ON podałem przykładowy, bo nie znam struktury tych tabel. Ogólnie chodzi o to, że wyciągasz rekordy które mają "wspólne" jakieś pole dla dwóch zbiorów, . Przyjrzyj się temu, tu jest ładnie wyjaśnione http://www.w3schools.com/sql/sql_join_inner.asp
Zrobiłem trzy przykłady, ale nie wiem czy tak jest prawidłowo. Bardzo bym prosił o sprawdzenie 1,2 i 3 zadania.
1.Powinno wyświetlić zajęcia, których nie ma w salach 1,2,3.
SELECT C.Room_Id,C.Sub_Id,S.Sub_Name,C.Start_Time,C.Duration
FROM Classe C
INNER JOIN Subject S ON S.Subject.Sub_Id = Classe.Sub_Id
WHERE Classe.Room_Id !=1 AND
Classe.Room_Id !=2 AND
Classe.Room_Id !=3
- Uczniowie uczęszczający na zajęcia w salach 1 lub 2.
SELECT Student.Stud_Id,Student.First_Name,Student.Last_Name,Classe.Room_Id
FROM Classe Cl,
INNER JOIN Subject S ON S.Sub_Id = Cl.Sub_Id
INNER JOIN Student St ON Cl.Class_Id = Student_Classe.Class_Id
WHERE Classe.Room_Id in (1,2);
- Pokazać ma imię, nazwisko, miejsce zamieszkania studentów spoza miasta Kraków, którzy mają przynajmniej ocenę 3 i chodzą na zajęcia, które trwają dłużej niż 60 minut.
SELECT
Student.First_Name,
Student.Last_Name,
Student.City,
Student.City,
Student_Classe.Grade,
Classe.Duration
FROM Student_Classe St_Cl,
INNER JOIN Student St ON .....
INNER JOIN Classe Cl ON ...........
INNER JOIN Subject S ON ...........
WHERE Student.City!='Kraków' AND
Student_Classe.Grade>=3 AND
Classe.Duration>60
ORDER BY Student.Last_Name desc
**
Mógłby ktoś sprawdzić i wytłumaczyć na przykładzie 3. zapytania jak łączyć tabelę, bo przy większej ilości łączeń tabel mam już problem jakie warunki wpisać po słowie "ON".**