Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/09/2010, 14:07
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Filtrado de tres tablas

A mi a simple vista me huele que la relación está mal definida...
Si una tienda existe, la tienda posee estos atributos al menos:
Cita:
Tienda(cod_tienda, nomrbe, direccion)
Si existen productos, la tabla productos tiene estos atributos al menos:
Cita:
Producto(cod_producto,descripcion, precio)
si una tienda tiene productos, sus atributos son:
Cita:
Tienda_Producto(cod_producto, cod_tienda, stock)
.
Si hay un almacen centralizado para abastecer a las tiendas, entonces podría ir:
Almacen(cod_almacen, cod_producto, stock)
pero esta última tabla no sirve por sí misma para saber la relación entre tienda y producto.
Con esta estructura,
Código MySQL:
Ver original
  1. SELECT cod_producto, descripcion, cod_tienda
  2. FROM producto JOIN tienda
  3. WHERE (cod_almacen, cod_producto) NOT IN (SELECT cod_almacen, cod_producto FROM almacen);
devolvería qué productos no aparecen en qué tienda.

Con la tuya, puedes averiguar cuáles productos no están en tiendas, pero en principio, si hay más de una tienda y más de un producto, no puedes saber cuáles tiendas y cuales productos son, porque serán respuestas por NULL. Y el NULL repetido genera indeterminación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 04/09/2010 a las 14:18