Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/04/2010, 23:27
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: consulta con join en tres tablas

Hola
Bueno, pues viendo tu estructura de tablas

Código:
t_ag_orientadores
 noIdentidad,nombre,departamento,municipio
 
 t_ag_educativos
 noIdentidad,nombre,departamento,municipio
 
 t_ag_invitados
 noIdentidad,nombre,departamento,municipio
te recomendaria que uses una sola tabla que sea por ej t_ag_entes y que
tengas un campo llamado "tipo" por ej donde guardes lo que es cada uno
(orientador,educador,invitados,y otros que a futuro tengas)

Pero bueno, tomando el curso del post, yo te recomendaria usar
el UNION SELECT para que puedas traer los datos de las distintas tablas,
asi entonces tendrías este código

Código MySQL:
Ver original
  1. t_ag_educativos.noIdentidad,
  2. t_ag_educativos.primerNombre, t_ag_educativos.segundoNombre, t_ag_educativos.primerApellido, t_ag_educativos.segundoApellido,
  3. t_ag_educativos.departamento, t_ag_educativos.municipio,
  4. t_foro_respuestas.titulo,t_foro_respuestas.fechaRecibo
  5. FROM t_foro_respuestas
  6. INNER JOIN t_ag_educativos ON t_ag_educativos.noIdentidad = t_foro_respuestas.noIdentidad
  7. WHERE t_ag_educativos.departamento = '$departamento'
  8. t_ag_orientadores.noIdentidad,
  9. t_ag_orientadores.primerNombre, t_ag_orientadores.segundoNombre, t_ag_orientadores.primerApellido, t_ag_orientadores.segundoApellido,
  10. t_ag_orientadores.departamento, t_ag_orientadores.municipio,
  11. t_foro_respuestas.titulo,t_foro_respuestas.fechaRecibo
  12. FROM t_foro_respuestas
  13. JOIN t_ag_orientadores ON t_ag_orientadores.noIdentidad = t_foro_respuestas.noIdentidad
  14. WHERE t_ag_orientadores.departamento = '$departamento'
  15. t_ag_invitados.noIdentidad,
  16. t_ag_invitados.primerNombre, t_ag_invitados.segundoNombre, t_ag_invitados.primerApellido, t_ag_invitados.segundoApellido,
  17. t_ag_invitados.departamento, t_ag_invitados.municipio,
  18. t_foro_respuestas.titulo,t_foro_respuestas.fechaRecibo
  19. FROM t_foro_respuestas
  20. JOIN t_ag_invitados ON t_ag_invitados.noIdentidad = t_foro_respuestas.noIdentidad
  21. WHERE t_ag_invitados.departamento = '$departamento';

Y finalmente una sugerencia para esas consultas con nombres de tablas extensos, es que le pongas un "alias" a las tablas para que sean mas cortas, por ej:

Código MySQL:
Ver original
  1. SELECT t_inv.noIdentidad, t_resp.titulo FROM t_foro_respuestas t_resp
  2. JOIN t_ag_invitados t_inv ON t_inv.noIdentidad = t_resp.noIdentidad
  3. WHERE t_inv.departamento = '$departamento';

Bueno, espero te sirva
saludos