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

Consulta a varias tablas

Estas en el tema de Consulta a varias tablas en el foro de Mysql en Foros del Web. Buenas noches a todos, tengo un problema que no se como solucionar. Tengo unas tablas en la base, que controlan seis ligas diferentes. Ahora quiero ...
  #1 (permalink)  
Antiguo 23/03/2011, 18:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 45
Antigüedad: 14 años, 6 meses
Puntos: 0
Consulta a varias tablas

Buenas noches a todos,

tengo un problema que no se como solucionar. Tengo unas tablas en la base, que controlan seis ligas diferentes. Ahora quiero hacer una consulta sobre las seis tablas para que me saque los dos primeros de cada tabla, y que los doce resultados me los ordene por la columna "puntos" y si luego por la columna "diferencia" si hay empates. Gracias de antemano.
  #2 (permalink)  
Antiguo 24/03/2011, 02:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta a varias tablas

Supongamos que tenemos

Liga1
idEquipo
Nombre
Puntos
Diferencia

Liga2
idEquipo
Nombre
Puntos
Diferencia


etc


Código MySQL:
Ver original
  1. SELECT 'Liga1' as Liga, Nombre,Puntos,Diferencia FROM Liga1 ORDER BY puntos,diferencia LIMIT 2;

Luego

Código MySQL:
Ver original
  1. SELECT  'Liga1' as Liga, Nombre,Puntos,Diferencia  FROM Liga1 ORDER BY puntos,diferencia LIMIT 2
  2. SELECT  'Liga2' as Liga, Nombre,Puntos,Diferencia  FROM Liga2 ORDER BY puntos,diferencia LIMIT 2
  3. ...

Pero UNION no respeta ORDER BY... vamos a hacerle una trampa.... una query sobre la query

Código MySQL:
Ver original
  1. SELECT  Liga, Nombre,Puntos,Diferencia  FROM
  2. (SELECT  'Liga1' as Liga, Nombre,Puntos,Diferencia  FROM Liga1 ORDER BY puntos,diferencia LIMIT 2
  3. SELECT  'Liga2' as Liga, Nombre,Puntos,Diferencia  FROM Liga2 ORDER BY puntos,diferencia LIMIT 2
  4. ...)
  5. ORDER BY puntos,diferencia;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 24/03/2011, 14:02
 
Fecha de Ingreso: octubre-2009
Mensajes: 45
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Consulta a varias tablas

Hola a todos de nuevo,

La respuesta no funciona por algo que ya adelantabas tú en tu respuesta. Muchísimas gracias por contestar, pero en ella anuncias que UNION no respeta ORDER BY, y decides hacer una query sobre la query, pero en la sub-query, también hay un ORDER BY en cada uno de los SELECT, y claro entre cada SELECT hay un UNION ALL, por lo que me dice que no es posible la consulta. ¿Alguna idea?
Quimfv, aquí tienes tu crucigrama de hoy................ jejejejeje Un saludo y gracias de antemano.
  #4 (permalink)  
Antiguo 25/03/2011, 02:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta a varias tablas

Si ese tipo de query funciona lo he usado.

Dime que te dice exactamente, igual solo falta que pongas alias a las subconsultas.

Los limit 2 me hacen dudar, pero ... el resultado del UNION no respeta el orden de los registros que resultaria de poner los registros de cada select en el orden que se han escritos los select...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 25/03/2011 a las 02:54

Etiquetas: tablas
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 16:09.