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

Problema en relacionamiento entre tablas

Estas en el tema de Problema en relacionamiento entre tablas en el foro de Mysql en Foros del Web. Hola, estoy teniendo dificultades para armar una consulta sql sobre una base de datos de oscommerce.. quiero obtener el codigo de producto, nombre, imagen, cantidad, ...
  #1 (permalink)  
Antiguo 20/12/2008, 11:27
 
Fecha de Ingreso: febrero-2006
Mensajes: 23
Antigüedad: 18 años, 2 meses
Puntos: 0
Problema en relacionamiento entre tablas

Hola,

estoy teniendo dificultades para armar una consulta sql sobre una base de datos de oscommerce..
quiero obtener el codigo de producto, nombre, imagen, cantidad, precio, estado y categoria.. pero no logro relacionar las tablas para obtener correctamente la informacion..

lo que quiero es obtener esos datos de todos los productos que estén dentro de la categoría con id = 21..

este es el código que tengoh hasta el momento, el cual me muestra datos de productos solo de la categoria 21, pero lo unico que varía en los resultados es el nombre de producto.. los demás campos repiten todos los datos de un solo registro

Código:
SELECT products.products_id, products.products_quantity, products.products_image, products.products_price, products.products_status, products_to_categories.categories_id, products_description.products_name
FROM products, products_description, products_to_categories
INNER JOIN products AS productos ON products_to_categories.products_id = productos.products_id
INNER JOIN products_description AS descripcion ON productos.products_id = descripcion.products_id
WHERE products_to_categories.categories_id =21
ORDER BY products.products_id DESC 
LIMIT 0 , 30
alguien me podría dar una mano?
  #2 (permalink)  
Antiguo 24/12/2008, 15:28
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema en relacionamiento entre tablas

Mira lo que pasa es que no estas haciendo bien la relacion del campo donde tienes la categoria 21 en una tabla solo debes tener un solo registro y en la otra muchos registro con la categoria de id 21 con esto puedes hacer la relacion con el inner join por ejemplo el siguiente codigo

" SELECT B.IdPersona,A.Nombre,A.Ciudad,A.Telefono,A.Correo_ Electronico,B.Empresasque trabajo,B.FechaInicial,B.FechaDespido
From Personal A
Inner Join Empresa B On A.idPersona=B.idPersona
order by B.IdPersona "

Con el anterior codigo muestro los datos generales de las personas y muestro tambien en todos los lugares en donde han trabajado la relacion se encuentra en IdPersona que solo existe 1 vez en la tabla personal con la tabla empresas que puede tener IdPersona n veces, ya que en esta esta registrado en todas las empresas en que ha trabajado la persona.

Puedes hacer un filtro con where b.idPersona='21' y asi solo te muestra las personas que tiene el codigo 21 en idPersona de la tabla Empresa. Tambien puedes hacer un fitro por nombre de persona invarablemente de su codigo idPersona y lo puedes filtrar de manera fija o con variantes de la busqueda con "Where A.Nombre like 'Agustin%' con este codigo where te mostraria todas las personas que empiezan con "Agustin" sean cual sean sus apellidos y la consultaria te mostraria los datos nada mas que el id_persona podria es diferente para cada persona.

Te puse este ejemplo ya que no conozco la estructura ni las tablas a buscar. Espero te sirva mi ayuda, de cualquier forma mi correo electronico es [email protected] por si necesitas alguna ayuda.

Saludos.

Última edición por urielgdl; 24/12/2008 a las 15:44 Razón: falto datos
  #3 (permalink)  
Antiguo 26/12/2008, 08:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Problema en relacionamiento entre tablas

Prueba esto:
Código sql:
Ver original
  1. SELECT p.products_id, p.products_quantity, p.products_image, p.products_price, p.products_status, pc.categories_id, pd.products_name
  2. FROM products p INNER JOIN products_to_categories pc ON pc.products_id = p.products_id
  3. INNER JOIN products_description pd ON p.products_id = pd.products_id
  4. WHERE pc.categories_id =21
  5. ORDER BY p.products_id DESC

Espero haber puesto bien los nombres de los campos y haber hecho las relaciones del modo adecuado.
  #4 (permalink)  
Antiguo 27/12/2008, 07:06
 
Fecha de Ingreso: febrero-2006
Mensajes: 23
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Problema en relacionamiento entre tablas

gracias uriel y jurena!!

la vd es que ya lo he resuelto.. hice exactamente lo que propone jurena pero me estaban saliendo triplicados los registros.. luego me di cuenta que habia un cambo de idioma donde estaban cargados 3 idiomas y se repetian los registros de descripcion por cada idioma.. lo filtré por el idioma indicado y caso resuelto..

muchas gracias a todos!! :D
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 22:42.