Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/11/2008, 05:35
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años
Puntos: 300
Respuesta: No consigo listar bien de 2 tablas

Lo que sí sería fácil es una solución mediante programación. Haces las dos consultas por separado y luego muestras los datos unidos siguiendo el orden en que fueron seleccionados. Eso sería lo mejor y más recomendable.
No sé si habría alguna solución con Store Procedures, pero yo no los manejo.
Si puedo ofrecerte mi experimento: a mí sólo se me ocurre que crees dos tablas temporales con los datos de la consulta limitada a 5 y ordenados al azar, pero con un primary key auto_increment que nos permita luego establecer la relación entre esas dos tablas temporales. Luego presentamos unidos mediante inner join por ese campo que he llamado indice.
Código sql:
Ver original
  1. DROP TABLE IF EXISTS tmp;
  2. CREATE TABLE tmp (indice INT (11) PRIMARY KEY AUTO_INCREMENT) engine = memory SELECT nombre FROM a ORDER BY rand() LIMIT 5;
  3. DROP TABLE IF EXISTS tmp2;
  4. CREATE TABLE tmp2 (indice INT (11) PRIMARY KEY AUTO_INCREMENT) engine = memory SELECT apellido FROM b ORDER BY rand() LIMIT 5;
  5. SELECT tmp.nombre, tmp2.apellido FROM tmp INNER JOIN tmp2 ON tmp.indice = tmp2.indice;

Pero el mismo resultado lo conseguirás con programación muy fácilmente.