Foros del Web » Programando para Internet » ASP Clásico »

tablas relacionadas

Estas en el tema de tablas relacionadas en el foro de ASP Clásico en Foros del Web. Hola, tengo la siguiente estructura de tablas: Empresas ------------ id nombre idTelefonos idFotos Fotos ------- id archivo Telefonos ------------ id Telefono Puede haber Empresas de ...
  #1 (permalink)  
Antiguo 08/03/2004, 18:17
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
tablas relacionadas

Hola, tengo la siguiente estructura de tablas:

Empresas
------------
id
nombre
idTelefonos
idFotos


Fotos
-------
id
archivo


Telefonos
------------
id
Telefono

Puede haber Empresas de las cuales no se posea foto. Y puede haber varias fotos por Empresa tambien. Lo mismo con Telefono, puede haber Empresas sin teléfono, como Empresas con 2, 3 o más telëfonos (por eso están separadas las tablas).
Ahora bien, si tengo unos datos asi:

id: 1
nombre: unaEmpresa
idFotos: 0 (0 significaria que no tengo foto)
idTelefonos: 0 (idem)

Al hacer la consulta:

SELECT * FROM Empresas, Fotos, Telefonos WHERE Empresas.id = 1 and Empresas.idFotos = Fotos.id and Empresas.idTelefonos = Telefonos.id

A no ser que tuviera un id = 0 en Fotos (que indicaría que no hay foto para esa empresa) y un id = 0 en Telefonos, no me devolvería ningún registro, y yo quiero que me devuelva el dato nombre, por más que no tenga logo o teléfono.
Lo que venía haciendo siempre es poner un registro en Fotos = 0 que quiere decir que no tiene foto (igual en Telefonos), y luego en la programación de la página pregunto si el id = 0 una vez devuelta la consulta (con el 0 siempre la va a devolver) para no cargar ninguna foto.
¿Es correcto esto (es decir, funciona, pero...)? ¿O se acostumbra hacer de alguna otra forma?
Noten que si todas las empresas tuvieran todos los datos cargados, es decir, todas las empresas tuvieran logo y teléfono, devolvería la consulta ok.
Bueno, espero me hayan entendido, saludos, muchas gracias por su ayuda
  #2 (permalink)  
Antiguo 10/03/2004, 09:27
 
Fecha de Ingreso: marzo-2002
Ubicación: Quito
Mensajes: 99
Antigüedad: 22 años, 2 meses
Puntos: 0
Trata con esto:

SELECT *
FROM
Empresas AS E LEFT JOIN
Fotos AS F ON E.idFotos = F.id LEFT JOIN
Telefonos AS T ON E.idTelefonos = T.id
__________________
Pablo Robayo
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 02:13.