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

Ayuda con tablas relacionadas

Estas en el tema de Ayuda con tablas relacionadas en el foro de Bases de Datos General en Foros del Web. Hey, q tal? espero q todos esten bien, y espero que me puedan hechar una mano con una peticion al sql. Bueno les explico de ...
  #1 (permalink)  
Antiguo 17/06/2005, 23:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Caracas :D - Venezuela
Mensajes: 36
Antigüedad: 21 años
Puntos: 0
Exclamación Ayuda con tablas relacionadas

Hey, q tal? espero q todos esten bien, y espero que me puedan hechar una mano con una peticion al sql. Bueno les explico de que va la cuestion. tengo 2 tablas.

tabla_productos
producto_id
producto_nombre
producto_descripcion

tabla_combos
combo_id
combo_producto_1
combo_producto_2
combo_producto_3 (puede ser NULL)
combo_producto_4 (puede ser NULL)

bueno por ahi va la cuestion, las tablas son mas complejas pero con estos campos sirve para explicar. el problema esta cuando necesito hacer una busqueda de los combos que tengan productos los cuales contengan un palabra clave ($keyword) en el nombre del producto. la sentencia que se me paso por la mente era algo asi

SELECT * FROM tabla_productos, tabla_combos WHERE combo_producto_1 = producto_id AND producto_nombre = $keyword

obviamente la sentencia funciona pero solo si la palabra clave se encuentra en combo_producto_1, despues probe esta :

SELECT * FROM tabla_productos, tabla_combos WHERE (combo_producto_1 = producto_id or combo_producto_2 = producto_id or combo_producto_3 = producto_id or combo_producto_4 = producto_id) AND producto_nombre = $keyword

esta sentencia arroja infinitos resultados cuando suponia que me arrojaria los resultados correctos. ese es el problema que tengo desde hace un tiempo para aca sin poder resolver, espero que alguno de ustedes tenga la paciencia y sabiduria para poder explicarme que diantres estoy haciendo mal. sin mas que decir y agradeciendome de antemano me despido. saludos...
__________________
de Caracas - Venezuela para el mundo! :D
  #2 (permalink)  
Antiguo 19/06/2005, 12:48
 
Fecha de Ingreso: diciembre-2002
Ubicación: Roma
Mensajes: 60
Antigüedad: 21 años, 11 meses
Puntos: 0
A ver...

Creo que lo necesitas es un "join"

Si entiendo, necesitas extraer la info de las todas tablas en las que se cumpla una condición relacionada con el nombre del producto. Sí?

Busca información sobre los "outer join" en la red. En todo caso, creo que podrías probar con:

SELECT X.tabla1, Y.tabla1, Z.tabla2 FROM tabla1 LEFT OUTER JOIN tabla2 ON X.tabla1 = X.tabla2 GROUP BY x.tabla1 HAVING X.tabla1 = "tu variable"

El LEFT OUTER JOIN te dará todos los datos en los que ambas tablas coincidan en X (digamos el codigo del producto) y en las que que tenga (HAVING) la condición que especifiques.

Te aconsejo buscar info sobre los "JOIN".

Suerte
Gara
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:31.