Tidak ada tipe gabungan "lebih baik" atau "lebih buruk". Mereka memiliki arti yang berbeda dan mereka harus digunakan tergantung padanya.
Dalam kasus Anda, Anda mungkin tidak memiliki karyawan tanpa work_log (tidak ada baris dalam tabel itu), jadi LEFT JOINdan JOINhasilnya akan setara. Namun, jika Anda memiliki hal seperti itu (karyawan baru tanpa work_log terdaftar), JOINhapus karyawan itu, sedangkan yang kiri bergabung (yang tabel pertamanya adalah karyawan) akan menunjukkan semuanya, dan nol di bidang dari work_log jika ada tidak cocok.

Sekali lagi, kinerja adalah hal sekunder untuk kebenaran permintaan. Beberapa orang mengatakan bahwa Anda tidak boleh menggunakan LEFT JOINs. Memang benar bahwa LEFT JOIN memaksa optimizer untuk mengeksekusi query dalam satu urutan tertentu, mencegah beberapa optimisasi (pemesanan ulang tabel) dalam beberapa kasus. Ini salah satu contohnya . Tetapi Anda tidak boleh memilih satu dari yang lain jika kebenaran / makna dikorbankan, karena INNER JOIN tidak secara inheren lebih buruk. Sisa dari optimasi yang biasa berlaku seperti biasa.
Singkatnya, jangan gunakan LEFT JOINjika Anda benar-benar jahat INNER JOIN.
Di MySQL CROSS JOIN, INNER JOINdan JOINsama. Dalam standar, dan secara semantik, a CROSS JOINadalah INNER JOINtanpa ONklausa, sehingga Anda mendapatkan setiap kombinasi baris di antara tabel.
Anda memiliki contoh semua jenis semantik bergabung di Wikipedia . Dalam praktiknya, di MySQL, kita cenderung hanya menulis JOINdan LEFT JOIN.