Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/01/2009, 04:11
nephilim2612
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Consula a tres tablas jodida

Si quieres obtenerlo todo en una fila, ten en cuenta que un SELECT simple no te sirve ya que lo más seguro es que el motor de SQL esté realizando un LEFT JOIN. Deberías concatenar el resultado de ejecutar el select correspondiente a cada tabla (Telefonos e Emails) Y devolver ese resultado como un campo de la consulta principal (llamando, por ejemplo, a los campos "Telefonos" y "Emails"). Al menos, yo tiraría por ahí.


Dos puntualizaciones sobre esto que te digo:

1- Devolver todos los valores del campo que se itera (bien sea Telefono o Email) en un solo campo por una sencilla razón: si cada persona puede tener diferente número de emails o teléfonos, tendrías que generar tantos campos en la query como emails/telefonos tenga la persona. Esto parece muy complejo para un caso aparentemente sencillo. Además, piensa en el caso de que, en lugar de recuperar los datos de una persona, tuvieses que hacerlo de varias: tendrías que calcular primiero el número máxio de emails / telefonos de las personas a consultar para saber cuántos campos devolver. Si tienes que actualizar desde ese grid la información de teléfonos/emails, entonces quizá te acosejaría que sacases tres grids: uno con la lista de personas y otros dos con la lista de teléfonos / mails de la persona seleccionada en el primer grid.

2 - Cuidado con llamar a un campo de una tabla igual que a la tabla (Telefono-Telefono, Email-Email), te puede equivocar al programar.

Espero que esto te de una idea de por dónde tirar. Un saludo.