Y porqué no usas JOIN?
Código PHP:
Ver original$query = "select t.*, t1.clave as nombre1, t2.clave as nombre2, t3.clave as nombre3";
$query .= " from t_tabla t";
$query .= "JOIN tabla_1 t1 on t1.clave = t.clave_1";
$query .= "JOIN tabla_2 t2 on t2.clave = t.clave_2";
$query .= "JOIN tabla_3 t3 on t3.clave = t.clave_3";
$query .= " where campo LIKE '%$q%' limit $offset,$rows";
Ejecutando esa consulta se agregarán los campos nombre1, nombre2 y nombre3 al registro.
En caso de que clave_1, _2 o _3 puedan tener un valor que no exista en la tabla correspondiente, deberás usar LEFT JOIN en lugar de JOIN, prueba un poco y nos dices si lo logras.