SQL query on relational schema
SELECT Surname
FROM Employee
JOIN Department ON Department.Director = Employee.EmployeeId;


Other than not requiring a subquery, this is generally a better thing to do because you can then easily access the matching Department table if you ever need to select a column from it.
Are you sure that this even works? You aren't joining the employee's department to the department ID. This should likely be:

SELECT Surname, Salary, City
FROM Employee
JOIN Department ON Department.DepartmentId = Employee.DepartmentId
               AND Department.City = 'Haarlem';

SELECT ProjectName, Budget, Surname
FROM Employee
JOIN Works ON Works.EmployeeId = Employee.EmployeeId
JOIN Project ON Project.ProjectId = Works.ProjectId
            AND Project.Budget &gt; 100;


This should be functionally equivalent but uses cleaner syntax.