Não existe um tipo de associação "melhor" ou "pior". Eles têm um significado diferente e devem ser usados dependendo dele.
No seu caso, você provavelmente não tem empregados sem work_log (há carreiras em que a tabela), então LEFT JOINe JOINserá equivalente no resultado. No entanto, se você tivesse uma dessas coisas (um novo funcionário sem work_log registrado), um número JOINomitido seria esse funcionário, enquanto uma junção esquerda (cuja primeira tabela é funcionários) mostraria todos eles e nulos nos campos de work_log, se houver não são correspondências.

Novamente, o desempenho é uma coisa secundária para consultar a correção. Algumas pessoas dizem que você não deve usar LEFT JOINs. É verdade que um LEFT JOIN força o otimizador a executar a consulta em uma ordem específica, impedindo algumas otimizações (reordenação de tabelas) em alguns casos. Aqui está um exemplo . Mas você não deve escolher um sobre o outro se a correção / significado for sacrificado, pois uma INNER JOIN não é inerentemente pior. O restante das otimizações usuais se aplica como de costume.
Em resumo, não use LEFT JOINse você realmente quer dizer INNER JOIN.
No MySQL CROSS JOIN, INNER JOINe JOINsão os mesmos. No padrão e semântica, a CROSS JOINé INNER JOINuma ONcláusula sem , portanto você obtém todas as combinações de linhas entre tabelas.
Você tem exemplos de todos os tipos semânticos de junção na Wikipedia . Na prática, no MySQL, tendemos apenas a escrever JOINe LEFT JOIN.