Simplificar consultas en varias tablas

Tengo varias tablas, una por año, con los mismos campos y quería saber si hay alguna forma de simplificar la consulta.
Me explico con un ejemplo supersimplificado:
Tabla1: _2009 campos: nombre, ciudad
Tabla2: _2010 campos: nombre, ciudad
Tabla3: _2011 campos: nombre, ciudad
La consulta que hago es:
SELECT * FROM _2009, _2010, _2011 WHERE _2009.ciudad='Madrid' OR _2010.ciudad='Madrid' OR _2011.ciudad='Madrid'
¿Habría alguna forma de reducirla tipo:
SELECT * FROM _2009, _2010, _2011 WHERE *.ciudad='Madrid'
?
Por otro lado tengo una tabla con los siguientes campos:
referencia_1, referencia_2, referencia_3, ...
¿Habría forma de simplificar la consulta que tengo que hacer ahora:
SELECT * FORM Tabla WHERE referencia_1='15/0012AS' OR referencia_2='15/0012AS' OR referencia_3='15/0012AS' ...
con algo como
SELECT * FORM Tabla WHERE referencia_*='15/0012AS'
?
Gracias de antemano y enhorabuena por esta labor altruista
{"lat":43.3206818794425,"lng":-8.37982177734375}

1 respuesta

Respuesta
1
Efectivamente, las dos cosas que quieres son posibles, y en el primer caso ahorraras bastante tiempo de consulta, en la segunda no tanto, igual hasta al revés, depende de los indices que tengas creados. Algo que me sorprende es tener tablas por años, porque no una tabla, ¿con un campo que sea año?, eso seria una buena solución...¿no?
En el primer caso...
SELECT * FROM _2009 WHERE ciudad='Madrid'
UNION SELECT * FROM _2010 WHERE ciudad='Madrid
UNION SELECT * FROM _2011 WHERE ciudad='Madrid'
Es más larga, pero es más eficiente, mucho más.
La segunda seria...
Espera no, la segunda no se puede porque son campos diferentes, esa esta bien como esta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas