Foros del Web » Programando para Internet » ASP Clásico »

Buscar en 2 tablas y 2 campos C/U

Estas en el tema de Buscar en 2 tablas y 2 campos C/U en el foro de ASP Clásico en Foros del Web. Hola, requiero hacer en un buscador el poder buscar si es posible en una sola sentencia, tengo 2 tablas y en ellas 2 campos donde ...
  #1 (permalink)  
Antiguo 01/06/2005, 18:08
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
Buscar en 2 tablas y 2 campos C/U

Hola, requiero hacer en un buscador el poder buscar si es posible en una sola sentencia, tengo 2 tablas y en ellas 2 campos donde deseo buscar

las tablas/campos son:
productos/nombre, descripcion
articulos/titulo, contenido

como deberia quedar la sentencia SQL?
  #2 (permalink)  
Antiguo 01/06/2005, 18:28
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola

Que es lo que has intentado, conoces el JOIN ?
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #3 (permalink)  
Antiguo 01/06/2005, 20:26
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
Código:
SQL="Select tabla1.campo1, tabla1.campo2, tabla2.campo1, tabla2.campo2 From tabla1, tabla 2"
o
Código:
SQL="Select a.campo1, a.campo2, b.campo1, b.campo2 From tabla1 a, tabla2 b"
o con inner join quedaria asi:
Código:
SQL="Select a.campo1, a.campo2, b.campo1, b.campo2 From tabla1 a Inner Join tabla2 b On....
Ahora lo que no tengo claro y agradeceria que me lo explicaran es que hasta donde yo se para hacer un inner join tienen que haber campos que se relacionen porque en el fondo el Inner join es relacionar dos tablas o no?????, ahora se puede usar el join sin el inner??? cual seria su funcion???.

Bueno volviendo al tema asi lo puedes hace, ahi tu le cambias los valores y le agregas las condiciones y el orden... saludos y suerte

PD: Te recomiendo que esperes la respuesta de lo del inner join porque asi te puede salir algo mejor.... suerte
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Última edición por El_Metallick; 01/06/2005 a las 20:45
  #4 (permalink)  
Antiguo 02/06/2005, 09:11
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola

Por lo menos en SQL Server...

INNER JOIN = JOIN

Es decir, son la misma cosa, cuando usas JOIN solo estas haciendo un INNER automáticamente.

Y la forma de consultar con JOIN, espero que sjam7 diga que ha intentado porque me parece que ya tiene experiencia en el tema y debe tener algun problema raro

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #5 (permalink)  
Antiguo 02/06/2005, 16:38
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
en realidad no estaba tratando con el JOIN, mi experiencia no esta muy enfocada al SQL lo que intente era algo asi:

Código:
SQL="SELECT productos.nombre, productos.descripcion, articulos.titulo, articulos.contenido FROM productos, articulos where listar=True and productos.nombre like '&"&busca&"%' or productos.descripcion Like '%"&busca&"%' or articulos.titulo like '%"&busca&"%' or articulo.contenido like '%"&busca&"%'"
  #6 (permalink)  
Antiguo 02/06/2005, 18:54
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola!

Y te funciono correctamente ?

Porque si te funciono, creo que esta bien asi, lo unico que miro raro es la parte de

where listar = true ????

No deberia ser como, tabla.listar = true ?

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #7 (permalink)  
Antiguo 02/06/2005, 19:06
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
No me da error pero se cuelga la pagina, cambie lo que comentas Neuron y sigue igual, incluso borre esa parte y sigue igual
  #8 (permalink)  
Antiguo 02/06/2005, 19:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
pero es la consulta la que te causa el problema??
que base de datos ocupas??
trataste de correr esa consulta en el analizador de consultas de el motor que utilizas?

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 02/06/2005, 19:22
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
oigan y ampliando la duda, ya que llame los campos en la sentencia como puedo saber de que tabla es el resultado? es decir, una tabla quedaria productos.nombre y la otra articulos.titulo

como puedo saber como llamar a cada una de los resultados????
  #10 (permalink)  
Antiguo 02/06/2005, 19:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Bueno, primero hay que ver que funcione la sentencia de busqueda de lo cual no estoy muy seguro, la verdad es que se me hace un tanto atipico traer campos de dos tablas que no tienen ninguna relacion, en un JOIN, regularmente, si tienes campos con el mismo nombre, recurres a los alias.

Cita:
ya que llame los campos en la sentencia como puedo saber de que tabla es el resultado?
Y es precisamente donde me hace ruido esta consulta...para que necesitarias saber de que tabla viene?

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 02/06/2005, 19:35
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
lo que pasa es que es una consulta de un buscador en el que "buscara" en 2 tablas diferentes que no tienen que ver entre si pero es para mostrar los datos que concuerden con lo buscado, una tabla es de productos y la otra de articulos, quiero que en ambas se busque en un mismo proceso.
  #12 (permalink)  
Antiguo 02/06/2005, 19:48
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Lo que tu quieres se asemeja mucho a un CROSS JOIN, solo que regularmente esto se ocupa en una tabla que se busca contra si misma, en todo caso SI lo puedes hacer como quieres, y para identificar de donde viene, pues ponles un alias a tus campos y listo.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 03/06/2005, 00:23
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola

Me imagino que estas con ASP, y SQL Server, si estoy mal sorry, esto no te servira, pero en tu arcivo de ASP pon...

Response.Expires = 0

Creo que con eso, aunque se tarde la consulta por lo menos no te mostrara el TimeOut y ejecutara el script hasta que todo funcione correctamente.

De la consulta, lo que pasa es que se vuelve muy pesada porque no hay un punto donde ambas se relaciones, y no hay nada que las una, los resultados te podrian dar como:

NULL, NULL, Titulo_Articulo, Contenido_Articulos

Por que no hay un punto donde los estes relacionando, tal vez no entiendo bien lo que intentas hacer, pero para lo que veo no hay ningún punto de relación, entonces para ti tal vez es mejor un cursor (de hecho 2 cursores en un procedimiento), o bien 2 consultas separadas, lo cual sería mejor, aunque son dos llamadas, resulta más eficiente, porque trabajas solamente sobre la tabla que necesitas.

Por otra parte, como tu dices, es muy posible que si se esté ciclando sin fin la consulta por lo mismo que no encuentra donde relacionar realmente los campos.

Entonces puedes hacer 2 consultas como:

select campo from tabla1 where CONDICION
select campo from tabla2 where CONDICION

Y en tu script de ASP recibiras 2 resultados, entonces trabajas con esos resultados para mostrarlos.

Bueno, no se si me explique, o si te entendí bien.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #14 (permalink)  
Antiguo 03/06/2005, 12:46
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
ok, creo mas facil esa solucion de 2 selects, lo intentare, gracias a ambos
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 18:06.