Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/06/2013, 04:52
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: usar union o alias

Sin discutir las aportaciones de nadie te recomiendo la lectura de las fuentes

http://dev.mysql.com/doc/refman/5.0/es/union.html

http://dev.mysql.com/doc/refman/5.0/es/join.html

Union y JOIN (con la sintaxis que sea, pero mejor usa JOIN...ON) NO TIENEN NADA QUE VER

Por otro lado esta query

Código MySQL:
Ver original
  1. SELECT alumnos1.nombre,alumnos1.edad,
  2.                                  alumnos2.nombre,alumnos2.edad
  3.                    FROM alumnos1,alumnos2  where edad='20'
  4.                    limit 1

va a dar un error por ambigüedad de campos puesto que el campo "edad" de la clausula WHERE puede ser de las dos tablas y no defines cual quieres evaluar.

Segundo, cuando hayas solucionado lo anterior, como no estableces ninguna relación entre las dos tablas va a generar un producto cartesiano entre las dos tablas, lo que puede llegar a generar una cantidad ingente de registros.
(Todos los registros de la primera tabla emparejados con todos los de la segunda, no veas si son 17 tablas)

Y esta

Código MySQL:
Ver original
  1. SELECT nombre,edad FROM alumnos1  where edad='20'
  2.                  union
  3.                  SELECT nombre,edad FROM alumnos2  where edad='20'
  4.                  limit 1

Te va a retornar la union de TODOS los registros de alumnos1 que tengan 20 años y el primero que encuentre de esa misma edad de alumnos2 (no siempre será el mismo!!!).

Además la edad es algo no estático, con lo que si tardas mucho te dará los mismos registros pero los alumnos quizás ya tengan 21. (Hay que guardar la fecha de nacimiento, nunca la edad).

La solución usando solo Sql es UNION pero yo investigaría alguna con programación externa que no obligue al servidor a leer la 17 tablas, si lo que quieres es encontrar un caso cuando hayas encontrado el primero no hace falta que busques mas, no?

Por otro lado 17 tablas con los mismos campos me hace pensar en algún error de diseño.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 28/06/2013 a las 05:18