, ( rating, , , , ). .
1:
select distinct e.EmployeeId, e.Name
from employee e
left join reviews r1 on e.EmployeeId = r1.EmployeeId and r1.rating = 'good'
left join reviews r2 on e.EmployeeId = r2.EmployeeId and r1.rating = 'bad'
where r1.ReviewId is not null
and r2.ReviewId is null
2:
select e.EmployeeId, max(e.Name) Name
from employee e
left join reviews r on e.EmployeeId = r.EmployeeId
group by e.EmployeeId
having count(case r.rating when 'good' then 1 else null end) > 0
and count(case r.rating when 'bad' then 1 else null end) = 0
SQL ANSI, , RDBMS, SQL ANSI ( ).
@oneday, MS Access ( , ).
( ): MS Access RDBMS. . , (Oracle, SQL Server, Firebird, PostGreSQL, MySQL, ), . .