Cómo buscar en 2 tablas iguales en MySQL de manera conjunta

  • Autor Autor mafragoto
  • Fecha de inicio Fecha de inicio
M

mafragoto

Gamma
SEO
Hola betas, tengo un problema con mi codigo, y ya me estoy haciendo bolas buscando en san google.

Tengo 2 tablas exactamente iguales: tabla1 y tabla2 necesito realizar articulos relacionados, y actualmente solo estoy trabajando con tabla1 con la siguiente query.

Insertar CODE, HTML o PHP:
select SQL_CALC_FOUND_ROWS
									tabla1.slug as slugpost,
									tabla1.titulo,
									tabla1.id,
									tabla1.id_usu,
									tabla1.id_cat,
									tabla1.slug,
									tabla1.fecha,
									tabla1.html,
									tabla1.hit,
									tabla1.etiquetas,
									tabla1.status as poststatus,
									categorias.nombre,
									categorias.slug as slugcategoria,
									categorias.icon,
									usuarios.id as idusuarios,
									usuarios.usuario
								    from tabla1
								    	LEFT JOIN usuarios
								    		on	tabla1.id_usu = usuarios.id
								        LEFT JOIN categorias on categorias.id=tabla1.id_cat
									WHERE
										MATCH(titulo, etiquetas, html) AGAINST ('".$query."')
		 								limit 1,5;

La query funciona perfecto, pero como veran solo busca en la tabla1 me gustaria que arroje los resultados y busque tanto en la tabla 1 como en la tabla 2

Tabla1 guarda los posts antiguos de mi sitio(desde el post 0 al 127000), y tabla2 es la tabla nueva para los nuevos post(desde el post 127001 en adelante). los resultados deberían salir ordenados por id y no tengo la mas minima iea de como adaptarlo. alguna sugerencia betas?
 
Última edición:
Puedes utilizar la función UNION, que une los resultados de ambas tablas sin duplicar resultados.
 
Puedes utilizar la función UNION, que une los resultados de ambas tablas sin duplicar resultados.

Si, la respuesta es usar UNION, y creeme que si lo intente, pero realmente no entiendo muy bien como usar UNION y es por eso que me hacia tantas bolas, intente de varios modos y maneras, hasta busque en stackoverflow, pero no me funciono nada, pense que quiza me pudieran ayudar con la query.

he intentado lo siguiente:

Insertar CODE, HTML o PHP:
SELECT SQL_CALC_FOUND_ROWS
                    t.slug as slugpost,
                    t.titulo,
                    t.id,
                    t.id_usu,
                    t.id_cat,
                    t.fecha,
                    t.html,
                    t.hit,
                    t.etiquetas,
                    t.status as table1tatus,
                    categorias.nombre,
                    categorias.slug as slugcategoria,
                    categorias.icon,
                    usuarios.id as idusuarios,
                    usuarios.usuario
FROM
(
SELECT table1.slug,table1.titulo,table1.id,table1.id_usu,table1.id_cat,table1.fecha,table1.html,table1.hit,table1.etiquetas,table1.status FROM table1
UNION
SELECT table2.slug,table2.titulo,table2.id,table2.id_usu,table2.id_cat,table2.fecha,table2.html,table2.hit,table2.etiquetas,table2.status FROM table2
) t
 LEFT JOIN usuarios on t.id_usu = usuarios.id
 LEFT JOIN categorias on categorias.id=t.id_cat
 WHERE
   MATCH(titulo, etiquetas, html) AGAINST ('dvdrip latino')
   limit 1,5;

pero me manda un error: Can't find FULLTEXT index matching the column list

Tambien ya he corrido el siguiente comando
Insertar CODE, HTML o PHP:
ALTER TABLE `table1` ADD FULLTEXT INDEX `test` (`titulo`, `etiquetas`, `html`); 
ALTER TABLE `table1` ADD FULLTEXT INDEX `test2` (`titulo`, `etiquetas`, `html`);
 
Última edición:
Atrás
Arriba