Hola Felipe_01:
Estás complicando demasiado una consulta bastante sencilla... Creo que no tienes muchas nociones del concepto de agrupación, por lo que te recomiendo que le des un vistazo al uso del GROUP BY en las sentencias SELECT. Checa este script:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.08 sec)
-> (2, 'ABCD-2'),(3, 'ABCD-2'),(4, 'ABCD-2'),
-> (5, 'ABCD-4'),(6, 'ABCD-4'),(7, 'ABCD-3'),
-> (8, 'ABCD-4'),(9, 'ABCD-4'),(10, 'ABCD-1');
Query OK, 10 rows affected (0.09 sec)
+------+--------+
| id | id_lab |
+------+--------+
| 1 | ABCD-1 |
| 2 | ABCD-2 |
| 3 | ABCD-2 |
| 4 | ABCD-2 |
| 5 | ABCD-4 |
| 6 | ABCD-4 |
| 7 | ABCD-3 |
| 8 | ABCD-4 |
| 9 | ABCD-4 |
| 10 | ABCD-1 |
+------+--------+
10 rows
in set (0.00 sec
)
+--------+-------+
| id_lab | total |
+--------+-------+
| ABCD-1 | 2 |
| ABCD-2 | 3 |
| ABCD-3 | 1 |
| ABCD-4 | 4 |
+--------+-------+
+--------+-------+
| id_lab | total |
+--------+-------+
| ABCD-4 | 4 |
+--------+-------+
Si observas la segunda consulta, al utilizar el operador GROUP BY obtienes el total de registros asociados a cada id_lab, en tu caso como quieres obtener el que tenga más, simplemente tienes que ordenar los registros por el total (COUNT) y obtener el primer registro (LIMIT). Creo que esto es lo que necesitas. Si tienes dudas o problemas lo comentas en el foro.
Saludos
Leo.