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

Desde
5 Mar 2012
Mensajes
374
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
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:

zenok

Gamma
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
6 May 2009
Mensajes
193
Puedes utilizar la función UNION, que une los resultados de ambas tablas sin duplicar resultados.
 

mafragoto

Gamma
SEO
Desde
5 Mar 2012
Mensajes
374
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
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:
Arriba