Любые плюсы и минусы на следующих способах извлечения сотрудников из отдела кадров? Особенно с точки зрения производительности?Эти запросы одинаковы?
--1
select * from employee emp
join department dep on emp.depId = dep.id and dep.name = 'HR';
--2
select * from employee emp
join (select * from department dep where dep.name='HR') d
on emp.depId = d.id;
--3
select * from employee emp
join department dep on emp.depId = dep.id
where dep.name = 'HR';
P.S. Все они имеют такой же план запроса и стоимость
Первый и третий являются идентичными (или должны быть) с точки зрения представление. Второй - это просто ненужный подзапрос, который слишком усложняет запрос, даже если он не влияет на производительность. –
Вы должны проверить план выполнения, чтобы убедиться, что они похожи при выполнении. –
@GordonLinoff Идея состояла в том, чтобы сделать соединение на столе с меньшим количеством строк для второго запроса – shadi