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

Seleccionar texto de dos tablas

Estas en el tema de Seleccionar texto de dos tablas en el foro de Mysql en Foros del Web. Buenas tardes, quisiera obtener un texto de las tablas articulos, y noticias, tanto en el título como en el mensaje de ambas, y que me ...
  #1 (permalink)  
Antiguo 18/07/2008, 10:55
 
Fecha de Ingreso: agosto-2005
Mensajes: 68
Antigüedad: 18 años, 8 meses
Puntos: 4
Seleccionar texto de dos tablas

Buenas tardes,

quisiera obtener un texto de las tablas articulos, y noticias, tanto
en el título como en el mensaje de ambas, y que me devuelva
resultados por separado.

Código:
SELECT DISTINCTROW * FROM articulos, noticias WHERE 
                   	                  articulos.titulo like '%clave%' 
					  OR articulos.mensaje like '%clave%'
					  OR noticias.titulo like '%$clave%' 
					  OR noticias.mensaje like '%$clave%'
					  limit 15";
Es decir, yo quiero que si busco "texto", me devuelva los registros que
contengan texto en:

el título en noticias OR
el mensaje en noticias OR
el título en artículos OR
el mensaje en artículos

O sea, que me lo encuentre en cualquiera de los cuatro campos, y que me devuelva un registro por cada artículo o noticia (de ahí lo de DISTINCTROW).

Llevo un tiempo batallando, pero no hay manera.

Un saludo.

Última edición por Thevenin; 18/07/2008 a las 11:14
  #2 (permalink)  
Antiguo 18/07/2008, 11:40
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Seleccionar texto de dos tablas

Solo 3 cosas
1- Evita el lo posible usar *, solo si es necesario
2- ¿En que parte de la consulta haces un Join "articulos, noticias"???, por que de la manera que estas haciendo haciendo trabajar demás a la DB.
3- Estas seguro que '%clave%' esta recibiendo el valor que le envías?
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 18/07/2008, 12:09
 
Fecha de Ingreso: agosto-2005
Mensajes: 68
Antigüedad: 18 años, 8 meses
Puntos: 4
Respuesta: Seleccionar texto de dos tablas

Cita:
Iniciado por Genetix Ver Mensaje
Solo 3 cosas
1- Evita el lo posible usar *, solo si es necesario
2- ¿En que parte de la consulta haces un Join "articulos, noticias"???, por que de la manera que estas haciendo haciendo trabajar demás a la DB.
3- Estas seguro que '%clave%' esta recibiendo el valor que le envías?
Hola,

Gracias por tu respuesta.

he corregido lo de %clave% por %$clave%.

La verdad es que no domino lo de unir las tablas con JOIN.

Los ejemplos que veo son siempre que el valor de un campo sea igual a otro,
y eso sí funciona.

El problema es que yo quiero buscar texto dentro de título y mensaje en las tablas
artículos y noticias,

he hecho esto, pero creo que la coma es lo mismo que poner JOIN:
Código:
SELECT DISTINCTROW articulos.id, noticias.id FROM articulos JOIN noticias 
	   				  WHERE	                 
	                  articulos.titulo like '%$clave%' 
					  OR articulos.mensaje like '%$clave%'
					  OR noticias.titulo like '%$clave%' 
					  OR noticias.mensaje like '%$clave%'
					  limit 15
No sé, la verdad es que los ejemplos de JOIN que encuentro no me ayudan nada.

A ver si podemos sacar algo en claro, porque estoy atascado.

Un saludo.
  #4 (permalink)  
Antiguo 18/07/2008, 12:20
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Seleccionar texto de dos tablas

Prueba esto
Código:
SELECT DISTINCTROW articulos.id, articulos.mensaje, noticias.id,  noticias.mensaje 
FROM articulos JOIN noticias ON  articulos.id =  noticias.tu_clave_de_relacion
	   				  WHERE	                 
	                  articulos.titulo like '%$clave%' 
					  OR articulos.mensaje like '%$clave%'
					  OR noticias.titulo like '%$clave%' 
					  OR noticias.mensaje like '%$clave%'
					  limit 15
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 18/07/2008, 13:16
 
Fecha de Ingreso: agosto-2005
Mensajes: 68
Antigüedad: 18 años, 8 meses
Puntos: 4
Respuesta: Seleccionar texto de dos tablas

Funciona más o menos, pero me acabo de dar cuenta que no tengo el problema en la consulta mysql, sino en la parte de php.

Gracias por la ayuda.
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 21:35.