Em casos simples, o otimizador de consulta deve ser capaz de produzir planos idênticos para uma junção simples versus uma subseleção simples.
Mas, em geral (e quando apropriado), você deve favorecer as junções sobre as sub-seleções.
Além disso, você deve evitar subconsultas correlacionadas (uma consulta na qual a expressão interna se refere à externa), pois elas são efetivamente um loop for dentro de um loop for). Na maioria dos casos, uma subconsulta correlacionada pode ser escrita como uma junção.