Существует различие для левого объединения между этими двумя:
Select *
From Table1 t1
Left Outer Join Table2 t2 On t2.id = t1.id
Where t2.somevalue = @SomeParameter
И
Select *
From dbo.Table1 t1
Left Outer Join dbo.Table2 t2 On t2.id = t1.id And t2.somevalue = @SomeParameter
Последний будет фильтровать таблицу 2, тогда как первый будет фильтровать соединение между таблицей 1 и таблицей 2,Таким образом, это означает, что первый запрос объединит все строки в двух таблицах по id, а затем отфильтрует те, где somevalue не соответствует параметру, то есть, как правило, это также отфильтрует те, в которых somevalue равно null, потому что не былоrow.
Второй запрос объединит table1 с table2 по id, но table2 сначала фильтруется по соответствующему параметру, поэтому несоответствующие строки также возвращаются и, следовательно, не отфильтровываются.
И примечание: вы всегда должны указывать схему ваших таблиц в запросах (из соображений производительности).