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

Unir 2 consultas

Estas en el tema de Unir 2 consultas en el foro de Mysql en Foros del Web. Hola a todos mi duda es la siguiente tengo esta consulta select distinct pna_url from pagina,pagina_keyword,keyword where (pagina.pna_id = pagina_keyword.pna_id and pagina_keyword.krd_id=keyword.krd_id) and krd_keyword=('mendoza' and ...
  #1 (permalink)  
Antiguo 22/01/2008, 08:35
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Unir 2 consultas

Hola a todos mi duda es la siguiente tengo esta consulta
select distinct pna_url from pagina,pagina_keyword,keyword where (pagina.pna_id = pagina_keyword.pna_id and pagina_keyword.krd_id=keyword.krd_id) and krd_keyword=('mendoza' and 'futbol')
Eso significa que tendría que buscar en una tabla de palabras claves que estuvieran esas 2 palabra para mostrar la pna_url que sería la página.
El problema es que ese and no me anda y había pensado en
select distinct pna_url from pagina,pagina_keyword,keyword where (pagina.pna_id = pagina_keyword.pna_id and pagina_keyword.krd_id=keyword.krd_id) and krd_keyword='mendoza'
y otra
select distinct pna_url from pagina,pagina_keyword,keyword where (pagina.pna_id = pagina_keyword.pna_id and pagina_keyword.krd_id=keyword.krd_id) and krd_keyword='futbol'
y unir las 2 consultas solo con las coincidencias, se puede hacer de alguna forma? Muchas gracias
  #2 (permalink)  
Antiguo 22/01/2008, 09:43
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 4
Re: Unir 2 consultas

se me ocurre algo asi.... de todos modos si colocas el formato de las tablas te puedo ayudar mas

SELECT DISTINCT pagina.pna_url
FROM pagina JOIN pagina_keyword ON (pagina.pna_id = pagina_keyword.pna_id ),
keyword
WHERE pagina_keyword.krd_id = keyword.krd_id
AND keyword.krd_keyword = 'futbol'

__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo
  #3 (permalink)  
Antiguo 22/01/2008, 10:05
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Unir 2 consultas

Muchas gracias por la respuesta, si eso anda, pero mira ahi te paso las tablas, lo que yo quiero es que al poner en el buscador futbol mendoza me muestre nada mas que www.losandes.com.ar y no www.ole.com.ar o sea que cumpla las 2 condiciones. Nose si esto lo tengo que hacer directamente con una consulta o uniendo 2 consultas con las coincidencias entre ambas.

Aca te dejo una imagen con las tablas y los contenidos que tienen las tablas.

http://img246.imageshack.us/my.php?image=dibujomw4.jpg
  #4 (permalink)  
Antiguo 22/01/2008, 11:10
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 4
Re: Unir 2 consultas

recien llegue de colacion pero se me ocurre algo como esto :

Código PHP:
SELECT pagina.pna_url
FROM pagina
WHERE pagina
.pna_id = (SELECT pna_id 
                       FROM pagina_keyword JOIN keyword ON pagina_keyword
.krd_id keyword.krd_id)
                       
WHERE keyword.krd_keyword 'mendoza'
                       

en todo caso creo que puedo mejorarlo....


EDITO:::::
se me ocurre que esto es mejor

Código PHP:
SELECT pagina.pna_url
FROM 
(keyword INNER JOIN pagina_keyword ON keyword.krd_id pagina_keyword.krd_idINNER JOIN pagina ON pagina_keyword.pna_id pagina.pna_id
WHERE 
(((keyword.krd_keyword)='mendoza')); 
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo

Última edición por omar1977; 22/01/2008 a las 11:17 Razón: nueva idea..... espero sea util...
  #5 (permalink)  
Antiguo 22/01/2008, 11:36
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Unir 2 consultas

Si esta muy bien eso pero como hago si ingresan' futbol mendoza' ya he cortado la cadena y tengo las palabras por separado pero tengo que verificar ambas condiciones.
  #6 (permalink)  
Antiguo 22/01/2008, 11:45
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 4
Re: Unir 2 consultas

si tienes las palabras por separado intenta cambiendo en '=' por un IN

Código PHP:
SELECT pagina.pna_url
FROM 
(keyword INNER JOIN pagina_keyword ON keyword.krd_id pagina_keyword.krd_idINNER JOIN pagina ON pagina_keyword.pna_id pagina.pna_id
WHERE keyword
.krd_keyword IN ('mendoza','futbol'); 
pero si quieres restringir a que coicida con ambas debes comparar nuevamente

SELECT pagina.pna_url
FROM (keyword INNER JOIN pagina_keyword ON keyword.krd_id = pagina_keyword.krd_id) INNER JOIN pagina ON pagina_keyword.pna_id = pagina.pna_id
WHERE keyword.krd_keyword='mendoza'
AND keyword.krd_keyword='futbol';

pero no me cuadra la logica......
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo
  #7 (permalink)  
Antiguo 22/01/2008, 12:53
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Unir 2 consultas

Si la primera que me pusiste con el in lo hice para el caso de un or, pero en la segunda no me muestra nada y lo que necesito es que lo tome como and. Probé como lo pusiste y no me dio por eso te preguntaba si hay alguna forma de juntar el contenido de 2 consultas por sus coincidencias? Saludos.
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 04:18.