Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

datos duplicados

Estas en el tema de datos duplicados en el foro de Bases de Datos General en Foros del Web. hola tengo 2 tablas y deseo mostrar un campo segun una condicion. tabla categorias idCategoria nombreCategoria tabla empresas id nombre anuncio1 anuncio2 pocisionx pocisiony idCategoria ...
  #1 (permalink)  
Antiguo 30/11/2012, 11:19
 
Fecha de Ingreso: marzo-2011
Mensajes: 16
Antigüedad: 13 años, 2 meses
Puntos: 0
datos duplicados

hola tengo 2 tablas y deseo mostrar un campo segun una condicion.

tabla categorias
idCategoria
nombreCategoria

tabla empresas
id
nombre
anuncio1
anuncio2
pocisionx
pocisiony
idCategoria

la consulta sql es la siguiente:

Código MySQL:
Ver original
  1. SELECT categorias.*, empresas.anuncio1, empresas.anuncio2, empresas.pocisionx, empresas.pocisiony
  2. FROM categorias, empresas
  3. WHERE empresas.idCategoria = 1
  4. AND empresas.pocisionx='".$x."'
  5. AND empresas.pocisiony='".$y."';

efectiva mente me muestra el campo que es anuncio1 pero me lo duplica segun el numero de datos en la tabla categorias es decir si en la tabla categorias hay 3 datos me muestra anuncio1 3 veces.

como evito que esto suceda y que al final solo me muestre 1 dato segun la condicion

nota: esto se ejecuta desde un archivo.php y por eso las variables $x y $y

muchas gracias.

Última edición por gnzsoloyo; 30/11/2012 a las 11:34 Razón: Codigo de programacion no permitido en los foros de BBDD.
  #2 (permalink)  
Antiguo 30/11/2012, 12:08
Avatar de 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: datos duplicados

Por lo pronto, te está faltando SQL.
Empecemos probando esto:
Código SQL:
Ver original
  1. SELECT E.anuncio1, E.anuncio2, E.pocisionx, E.pocisiony
  2. FROM empresas E INNER JOIN categorias C ON E.idCategoria = C.idCategoria
  3. WHERE E.idCategoria = 1
  4.       AND E.pocisionx='".$x."'
  5.       AND empresas.pocisiony='".$y."';
Entendiendo que te pondrá una linea por cada empresa y anuncio de categoría 1.
Lo que habría que ver es si es necesario o no poner los datos de la categoría, pero eso lo decides tu.

Por cierto: Si una empresa puede tener N anuncios, los anuncios requieren una tabla para ellos mismos. No un campo dentro de la tabla empresa.
Te está faltando también base de conocimientos del modelo relacional, o al menos no lo estás aplicando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/11/2012, 12:19
 
Fecha de Ingreso: marzo-2011
Mensajes: 16
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: datos duplicados

amigo muchas gracias :D me das varias ideas y una buena solución, en cuanto a los anuncios 1 empresa solo podra tener 1 anuncio :D gracias me sirvió mucho tu ayuda

Etiquetas: sql
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 14:53.