Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2004, 18:17
DeLaVega
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 22 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