INNER JOIN con el metodo find()

edited agosto 2008 in Principiantes
Hola, quiero realizar una consulta en dos tablas que una posee una clave foranea.
actualmente la realizo asi:
$db = db::raw_connect();
$db->fetch_all("SELECT * FROM categories INNER JOIN categoriesdescription ON categories.id = categoriesdescription.categories_id");
$db->close();

¿Como seria el equivalente utilizando el metodo find() de ActiveRecord?
    /**
     * Find data on Relational Map table
     *
     * @param string $what
     * @return ActiveRecord Cursor
     *
     * columns: columnas a utilizar
     * conditions : condiciones de busqueda en WHERE
     * join: inclusion inner join o outer join
     * group : campo para grupo en GROUP BY
     * having : condicion para el grupo
     * order : campo para criterio de ordenamiento ORDER BY
     * distinct: campos para hacer select distinct
     */
    public function find($what = '') 
    {}

Saludos

Comentarios

  • edited 8:43
    yo utize el metodo find_all_by_sql
    ej:
    $this->empresas = $this->Tabla_1->find_all_by_sql("select tabla_1.* from tabla_1	inner join tabla_2
    on tabla_1.campo = tabla_2.campo where ...");
    

    suerte!!
  • seria mas interesante utilizar el metodo find_all_by_sql ya que a este le puedes pasar una consulta SQL desde cualquier modelo de los que tengas disponible
  • Gracias a ambos, el método que mencionan (find_all_by_sql) me ha funcionado como esperaba.
    $this->resultado = $this->Categories->find_all_by_sql('SELECT * FROM categories INNER JOIN categoriesdescription ON categories.id = categoriesdescription.categories_id AND categories.parent_id='.$this->parent_id.' ORDER BY '.$this->ordenar.' '.$this->tipoDeOrden);
    

    Saludos...
  • edited 8:43
    En la 0.5 esta el parametro con nombre join
    $this->empresas = $this->Tabla_1->find('join: inner join tabla_2
    on tabla_1.campo = tabla_2.campo', 'columns: tabla1.*');
    

    Esa seria una manera.

    Saludos
  • Sabia que existía ese parámetro pero no como usarlo.
    Gracias de nuevo
Sign In or Register to comment.