Результаты будут такими же.
Если в любом случае используется только INNER JOIN.
Но первый способ - это стандартный и правильный способ сделать это.
Это более читабельно и менее запутанно.
Как это влияет на план объяснения?Это зависит от базы данных.
SQL - декларативный язык.Где мы спрашиваем, что мы хотим, а не как вытащить это.
(по крайней мере, если вы не используете T-SQL подсказки )
ВотПример T-SQL, чтобы продемонстрировать, что результаты совпадают.
declare @A table (ID_A int, FK_B int);
declare @B table (ID_B int, FK_C int);
declare @C table (ID_C int);
insert into @A (ID_A, FK_B) values (11,21),(12,22),(13,null);
insert into @B (ID_B, FK_C) values (21,null),(22,32),(23,33);
insert into @C (ID_C) values (31),(32),(33);
-- A to B, B to C
select a.ID_A, b.ID_B, c.ID_C
from @A a
inner join @B b on (b.ID_B = a.FK_B)
inner join @C c on (c.ID_C = b.FK_C);
-- (B to C) to A
select a.ID_A, b.ID_B, c.ID_C
from @A a
inner join @B b inner join @C c on (c.ID_C = b.FK_C)
on (b.ID_B = a.FK_B);
Оба результата:
ID_A ID_B ID_C
---- ---- ----
12 22 32