Anda tidak memiliki batas GABUNG untuk MySQL. Jumlah Anda bergabung tidak buruk. Namun, bergabung pada tabel turunan (subquery dalam) seperti yang Anda lakukan dapat menyebabkan masalah kinerja, karena tabel turunan tidak memiliki indeks. Melakukan penggabungan pada tabel turunan tanpa indeks bisa jadi lambat.
Anda harus mempertimbangkan untuk membuat tabel sementara yang nyata dengan indeks untuk bergabung, atau mencari cara untuk menghindari subquery.
GABUNG di MySQL pada dasarnya seperti melakukan pencarian (seek) untuk setiap baris yang digabungkan. Jadi, MySQL harus melakukan banyak pencarian jika Anda menggabungkan banyak record. Ini bukan tentang berapa banyak tabel yang Anda gabungkan daripada jumlah baris yang Anda ikuti yang bisa menjadi masalah.
Bagaimanapun, MySQL hanya akan melakukan begitu banyak pencarian sebelum menyerah dan hanya membaca seluruh tabel. Ia melakukan pekerjaan yang cukup baik dalam memutuskan mana yang akan lebih murah.
Mungkin hal terbaik yang dapat Anda lakukan adalah membantunya menebak dengan memperbarui statistik indeks dengan ANALYZE TABLE.
Anda dapat memiliki satu klausa WHERE per SELECT. Jadi subquery dalam Anda akan memiliki klausa WHERE dan kueri luar Anda akan memiliki klausa WHERE, dan ini diterapkan setelah JOIN (setidaknya secara logika, meskipun MySQL umumnya akan menerapkannya terlebih dahulu untuk performa).
Selain itu, semua ini dengan asumsi Anda tahu cara menggunakan indeks dengan benar.