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

AYUDA!!!POR FAVOR CONSULTA MULTITABLA SQL HACIENDO USO DE LIKE ....Ayudenme

Estas en el tema de AYUDA!!!POR FAVOR CONSULTA MULTITABLA SQL HACIENDO USO DE LIKE ....Ayudenme en el foro de Bases de Datos General en Foros del Web. Bueno ante todo un saludo a los visitantes de este tema. . Tengo en mi web (una tienda virtual) un buscador el cual realizara búsquedas ...
  #1 (permalink)  
Antiguo 08/09/2008, 17:10
Avatar de starmark  
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 64
Antigüedad: 16 años, 5 meses
Puntos: 0
AYUDA!!!POR FAVOR CONSULTA MULTITABLA SQL HACIENDO USO DE LIKE ....Ayudenme

Bueno ante todo un saludo a los visitantes de este tema. . Tengo en mi web (una tienda virtual) un buscador el cual realizara búsquedas en una db donde almaceno 3 tablas, art_deportivos, art.musicales, otros ..

En el buscador como dije ofrezco opciones de buscar en las distintas tablas y una opción que buscara en las 3 tablas (AQUI EL PROBLEMA) tengo el siguiente select.. .
<select name="busc">
<option>TODOS</option>
<option>MUSICALES</option>
<option>DEPORTIVOS</option>
<option>OTROS</option>
</select>

Cuando el usuario desea buscar en las tablas art_deportivos, art.musicales u en la tabla otros .. NO TENGO NIGUN PROBLEMA

El problema es cuando el usuario marca en el select la opción todos, que debe buscar en las 3 tablas ..

No tengo bien claro como debe ser esta consulta ..

Algo que debo decir es que en las 3 tablas tengo los cuatro campos repetidos no se q tenga esto que ver, lo que pasa es que como es un inventario, entonces no veo otra forma de almacenarlos en la db, aquí os pongo la estructura de mis tablas

CREATE TABLE `deportivos` (
`idproducto` varchar(30) NOT NULL,
`descripcion` text NOT NULL,
`cantidad` int(20) default NULL,
`precio` float NOT NULL,
PRIMARY KEY (`idproducto`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `musicales` (
`idproducto` varchar(30) NOT NULL,
`descripcion` text NOT NULL,
`cantidad` int(20) default NULL,
`precio` float NOT NULL,
PRIMARY KEY (`idproducto`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `otros` (
`idproducto` varchar(30) NOT NULL,
`descripcion` text NOT NULL,
`cantidad` int(20) default NULL,
`precio` float NOT NULL,
PRIMARY KEY (`idproducto`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

E intentado varias querys que me dan como 70000 mil resultados :: . Por favor ayúdenme en esto;

Si no me explique bien diganme para explicarme mejor .. Gracias
  #2 (permalink)  
Antiguo 09/09/2008, 03:52
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: AYUDA!!!POR FAVOR CONSULTA MULTITABLA SQL HACIENDO USO DE LIKE ....Ayuden

No entiendo porque tienes 3 tablas, puedes tenerlo todo en una tabla con un campo "TIPO" que indica el tipo de producto.
La select con el diseño actual, seria algo del estilo:
Código:
select idproducto, descripcion, cantidad, precio, 'deportivo' as tipo_producto
from deportivos d
where d.descripcion like tu_busqueda

union

select idproducto, descripcion, cantidad, precio, 'musicales' as tipo_producto
from musicales m
where m.descripcion like tu_busqueda

union

select idproducto, descripcion, cantidad, precio, 'otros' as tipo_producto
from otros o
where o.descripcion like tu_busqueda
Salu2
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.