Ich versuche, aus MySQL Tabellennamen auszuwählen, die von einer Abfrage zurückgegeben werden. Die Tabellennamen sind table_prefix_date (z. B. table_prefix_20160801).MySQL aus Tabellen auswählen, die von Abfrage zurückgegeben werden
Um alle Termine und entsprechenden Tabellennamen ich etwas wie folgt aus:
select concat('db_name.table_prefix_',a.Date)
from (
select date_format(curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY,'%Y%m%d') as Date
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
where date_format(Date,'%Y-%m-%d') between '2016-08-01' and '2016-08-20'
order by 1 asc;
Alle Tische haben die gleichen Spalten und Indizes. Just do select * from (queryabove);
schlägt fehl.
Kann mir bitte jemand ein Arbeitsbeispiel geben, wie ich Daten aus den Tabellen abrufen kann, die von der obigen Abfrage zurückgegeben wurden?
Ich konnte das nicht mit den in diesem Beispiel verwendeten Anführungszeichen ausführen. Durch den Wechsel in doppelte Anführungszeichen um die gesamte Abfrage herum läuft sie, gibt aber nur "select * from tablenames" zurück. Siehe http://sqlfiddle.com/#!9/4523b4/5 –
@AndyThompson. . . Ich weiß nicht, was ich dachte (obwohl ich Jetlag als Ursache behaupten kann). Das Set sollte eigentlich eine Unterabfrage und keine Zeichenfolge verwenden. –
Ich bekomme nur Fehler und scheint ein Klammern fehlt und Ticks/Anführungszeichen Probleme? –