Я бы порекомендовал для такой ситуации:
поставить условие JOIN
(которое устанавливает "связь" между двумя таблицами) - и только это JOIN
условие - после оператора JOIN
любые дополнительные условия для одной из двух соединяемых таблиц содержатся в обычном предложении WHERE
Исходя из этого, я всегда рекомендовал бы написать ваш запрос следующим образом:
SELECT
(list of columns)
FROM
dbo.cars c
INNER JOIN
dbo.parts p ON c.CarID = p.CarID
WHERE
p.Desc LIKE 'muffler%'
Это кажется «чище» и более выразительным - не «скрывайте» дополнительные условия за предложением JOIN
если они на самом деле не принадлежат (например, помогите установить связь между двумя объединяемыми таблицами).