Acerca de busqueda; inner join, tablas

Te pongo Tablas y datos ficticios como ejemplos:
Productos (datos de producto personales): idproducto, titulo_personal(cámara digital sony c300 con bolso de regalo), descripcion_personal, idDatoReal(5), idcategoria(7)
DatosReales (datos de producto como de fábrica): idDatoReal(5), descripcion_real, titulo_real(sony c300)
Detalles: iddetalle(2), idcategoria, titulo(resolucion sensor)
Valores: idvalor, iddetalle(2), iddatoreal(5), titulo(5,0 Megapixel)
Categorias: idcategoria(7), nombre(camaras digitales)
Cada tabla Detalles esta vinculada a una categoría de forma que cuando se ingresa a la página de esta ultima se despliegan los productos de la tabla Productos pertenecientes a dicha categoría. Los campos de la tabla Detalles también se despliegan en un menu lista dentro de un form para una posterior búsqueda más detallada. Cada opción de la lista posee los valores vinculados a dicha tabla.
Lo que pretendo lograr es tener la posibilidad de buscar registros de la tabla Productos seleccionando algún valor como especificación. ¿Por ejemplo selecciono del menú? ¿Resolución sensor? ¿La opción? 5,0 megapixel? De forma que se encuentren productos que coincidan con estas especificaciones.
Se que se realiza utilizando INNER JOIN, pero a la hora de formar la sentencia me invade la confusión.
¿Podrías darme una mano?

1 respuesta

Respuesta
1
Si te da error de argumentos incorrectos, ten en cuenta el TIPO de las variables que utilizas, si son números o texto, deberás poner comillas o no, según sea una cosa u otra.
A ver si me puedes dar más datos, que no entiendo eso de (Ej.7)...¿? ¿? ¿?
Lo siento, eran unos caracteres de más. Ya lo he solucionado. EL problema ahora es que no se como imprimir los registros. Por ej. si escribo rs("Productos.titulo") para que despliegue el titulo y debajo de este, la categoría correspondiente a través de rs("Categorías.nombre"), aparece el error de que no ha encontrado el elemento que corresponde con el original u ordinal pedido.
Un abrazo y muchas gracias de antemano.
Explicarte ahora el INNER JOIN sería un poco largo. Te recomiendo otra cosa que te servirá casi para siempre.
Crea tu BD en Access y establece las relaciones adecuadas entre las categorías y los productos, ya sabes, relaciones 1 a 1, 1 a muchos, etc...
Cuando lo tengas ya listo y con algunos valores metidos, accede al asistente de consultas y realiza ahí la petición que me comentas. Luego te vas a "Ver SQL" y verás como aparece la instrucción consecuente en SQL, la cual comprenderás sin problemas, porque sabes exactamente qué es lo que estas pidiendo.
Prueba con ese sistema, te elimina muchos quebraderos de cabeza.
No olvides cerrar la pregunta para que otros me puedan preguntar!.
Hola experto, he hecho lo que me has dicho y lo he comprendido sin problemas pero luego cuando escribo las condiciones después del where aparece el error <Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.> Indicando que el conflicto está en la línea de la sentencia sql.
He unido la tabla Categorias y en el where solamente he puesto Productos.idcategoria="&id(ej. 7).
Luego despliego la lista de registros con por ej. rs("Productos.titulo"), su respectiva categoría rs("Categorías.nombre").
¿Se qué no te he dado muchos detalles acerca del error pero podrías decirme qué sucede y cómo lo soluciono?
Ten en cuenta que tendrás que unificar la búsqueda en un solo Query o realizar una búsqueda independiente para Categorías, sino no te encontrará nada.
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas