Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

excuir registros de la unión de 2 tablas en CI

Estas en el tema de excuir registros de la unión de 2 tablas en CI en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos, En esta ocasión les comparto mi siguiente problema, pues resulta que de la unión de 2 tablas quiero excluir los registros de otra. ...
  #1 (permalink)  
Antiguo 20/02/2012, 15:27
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
excuir registros de la unión de 2 tablas en CI

Hola amigos,

En esta ocasión les comparto mi siguiente problema, pues resulta que de la unión de 2 tablas quiero excluir los registros de otra.

Gracias a este hilo lo he logrado hacer: http://www.forosdelweb.com/f18/exclu...sultas-350845/

Obteniendo una consulta como la siguiente:

Código SQL:
Ver original
  1. SELECT * FROM usuarios
  2. LEFT JOIN profesores ON materias.codMateria =1 AND usuarios.codUsuario = materias.codUsuario
  3. WHERE usuarios.tipo = "pro" AND materias.codUsuario IS NULL

La consulta ya la he probado y obtengo el resultado deseado, el problema es que no sé como convertir esa consulta a la sistáxis de active record de CodeIgnither.

Yo sé que puedo ocupar algo como:

$query = $this->db->join('materias', 'usuarios.codUsuario =materias.codUsuario','left');

Pero como pueden ver eso mi query yo tengo un AND dentro de del ON,. si esa condición la colo en el where, entonces ya no obtengo los resultado desados.

me pueden ayudar a traducir el consulta a active record?

PD: lo anterior lo resolvía fácilmente con subconsultas, pero nbo he encontrado cómo hacerlo con el active record, creo que no se puede.

Saludos
  #2 (permalink)  
Antiguo 21/02/2012, 15:10
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: excuir registros de la unión de 2 tablas en CI

Hola, tu query podria quedar algo asi:
Código PHP:
$query $this->db->join('materias''usuarios.codUsuario =materias.codUsuario AND usuarios.codUsuario = materias.codUsuario','left'); 
Espero te sirva, saludos.
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #3 (permalink)  
Antiguo 21/02/2012, 16:59
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: excuir registros de la unión de 2 tablas en CI

Hola Bellenger,

Muchas gracias por responder, no consigo que me devuelva todos los que espero, les dejo mi active record para que vean lo tengo

Código SQL:
Ver original
  1. $array = array('usuarios.tipo' => 'pro','materias.codMateria' => $idmateria, 'materias.codUsuario' => NULL);
  2. $query = $this->db->SELECT('usuarios.codUsuario,usuarios.nombre,usuarios.apellido');
  3. $query = $this->db->JOIN('materias', 'usuarios.codUsuario=materias.codUsuario AND usuarios.codUsuario = materias.codUsuario','left');
  4. $query = $this->db->WHERE($array)->GET('usuarios');

El "materias.codMateria =1" de la consulta principal puede tomar cualquier valor numérico pues se trata de un campo autonumérico.

Select original:

Código SQL:
Ver original
  1. SELECT * FROM usuarios
  2.     LEFT JOIN materias ON materias.codMateria =1 AND usuarios.codUsuario = materias.codUsuario
  3.     WHERE usuarios.tipo = "pro" AND materias.codUsuario IS NULL

Me pueden ayudar a encontrar el error?

gracias desde ya

Etiquetas: registros, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:11.