Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/06/2012, 11:46
Avatar de Lobito14
Lobito14
 
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Problema con join en Zend Db Select

Buenas, quiero pasar esta sentencia SQL a Zend Framework mediante el objeto Zend_Db_Select y los join:

Código MySQL:
Ver original
  1. SELECT e.* , upe.inscription_date
  2.         FROM event e, user_participate_event upe, user u
  3.         WHERE e.id_event = upe.event
  4.         AND u.id_user = upe.user
  5.         AND u.id_user = $id_user

Probé así:

Código PHP:
Ver original
  1. $sql = $this->select()
  2.             ->from(array('e'=>'event', 'u'=>'user'))
  3.             ->where('u.id_user=?', $id_user)
  4.             ->join('user_participate_event', 'e.id_event = user_participate_event.event');

Y me saltó el siguiente error:

Cita:
Message: Select query cannot join with another table
Estuve buscando por ahí, y vi que añadiendo al código anterior que no compruebe la integridad, se soluciona:

Código PHP:
Ver original
  1. $sql = $this->select()
  2.             ->setIntegrityCheck(false)
  3.             ->from(array('e'=>'event', 'u'=>'user'))
  4.             ->where('u.id_user=?', $id_user)
  5.             ->join('user_participate_event', 'e.id_event = user_participate_event.event');

Pero ahora tengo el siguiente error:

Cita:
Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'u.id_user' in 'where clause'
Y en mi tabla user si existe la columna id_user.

Entonces no se en qué estoy fallando.

Espero puedan ayudarme.

Un saludo y gracias.