Trabajo en una base de datos MySQL, versión del cliente: libmysql - 5.6.43
CONTEXTO. Tengo una base de datos que contiene dos tablas, las cuales tienen justo la misma estructura, los mismos campos, todo igual, sólo cambia el nombre de la tabla. A modo de ejemplo el contenido de estas dos tablas es como sigue (en realidad hay cientos de registros):
Tabla 1
id: 1 - nombre: Ariadna - email: [email protected]
id: 2 - nombre: Atenea - email: [email protected]
Tabla 2
id: 1 - nombre: Thomas Hobbes - email: [email protected]
OBJETIVO. Realizar consulta que recupere todos los registros de todas las tablas.
QUÉ ESTOY HACIENDO. Sé que existe la opción UNION, para lograr lo que necesito. El problema es que no puedo utilizar UNION (no me sirve) porque la paginación se hace imposible. Por eso utilizo CROSS JOIN. Mi consulta es la siguiente. Aclaración: no hay ninguna relación entre los registros de ambas tablas, por eso no pongo el ON:
Código SQL:
Ver original
SELECT t1.id AS t1_id, t1.email AS t1_email, t1.nombre AS t1_nombre, t2.id AS t2_id, t2.email AS t2_email, t2.nombre AS t2_nombre FROM tabla1 AS t1 CROSS JOIN tabla2 AS t2 WHERE 1
Esta consulta me devuelve lo siguiente (pasado a un array PHP):
Código PHP:
Array (
[0] => Array (
[t1_id] => 1
[t1_email] => ariadna@ariadna.com
[t1_nombre] => Ariadna
[t2_id] => 1
[t2_email] => thomas@hobbes.com
[t2_nombre] => Thomas Hobbes
),
[1] => Array (
[t1_id] => 2
[t1_email] => atenea@atenea.com
[t1_nombre] => Atenea
[t2_id] => 1
[t2_email] => thomas@hobbes.com
[t2_nombre] => Thomas Hobbes
)
)
PREGUNTA. ¿Cómo lograr que la consulta me devuelva esto?
Código PHP:
Ver original
Array ( [t1_id] => 1 [t1_email] => [email]ariadna@ariadna.com[/email] [t1_nombre] => Ariadna ), [t1_id] => 2 [t1_email] => [email]atenea@atenea.com[/email] [t1_nombre] => Atenea ), [t2_id] => 1 [t2_email] => [email]thomas@hobbes.com[/email] [t2_nombre] => Thomas Hobbes ) )
Saludos!