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

¿Cómo recuperar todos los registros de todas las tablas?

Estas en el tema de ¿Cómo recuperar todos los registros de todas las tablas? en el foro de Mysql en Foros del Web. Hola! Buena noche, compañeros! Trabajo en una base de datos MySQL, versión del cliente: libmysql - 5.6.43 CONTEXTO. Tengo una base de datos que contiene ...
  #1 (permalink)  
Antiguo 29/04/2020, 20:51
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 9 meses
Puntos: 22
Pregunta ¿Cómo recuperar todos los registros de todas las tablas?

Hola! Buena noche, compañeros!

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
  1. 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
  2. FROM tabla1 AS t1
  3. CROSS JOIN tabla2 AS t2
  4. 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
    
)

Es cierto que la consulta me devuelve todos los registros de ambas tablas, es decir, los 3 registros totales. Pero ¡qué forma de devolverlos! No quiero que el único registro de la tabla 2 se repita en cada uno de los registros recuperados de la tabla 1.

PREGUNTA. ¿Cómo lograr que la consulta me devuelva esto?
Código PHP:
Ver original
  1.     [0] => Array (
  2.         [t1_id] => 1
  3.         [t1_email] => [email]ariadna@ariadna.com[/email]
  4.         [t1_nombre] => Ariadna
  5.     ),
  6.     [1] => Array (
  7.         [t1_id] => 2
  8.         [t1_email] => [email]atenea@atenea.com[/email]
  9.         [t1_nombre] => Atenea
  10.     ),
  11.     [2] => Array (
  12.         [t2_id] => 1
  13.         [t2_email] => [email]thomas@hobbes.com[/email]
  14.         [t2_nombre] => Thomas Hobbes
  15.     )
  16. )


Saludos!

Etiquetas: sql
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 11:44.