查询结构相同的多个表


Query Multiple table with same structure

我构建了几个具有相同结构的表,并希望使用PHP MYSQL立即查询它们。我面临的具有挑战性的部分是查询 x 个表,我不知道那里有多少个表。(假设用户将在 UI 透视上选择表)。这样做的原因是将它们输出为 csv 格式。

例如:-

Date, xTable, yTable, zTable, ....
==============================b
bla      1        2      3
bla      4        3      5
...
...

如何修改以下查询以满足上述需求?(查询需要足够灵活才能查询多表)。

选择created_dt, xTable FROM needToQueryMultiTable WHERE created_dt BETWEEN ?和?

您可以创建所有可能表的视图:

create v_tables as
    select 'table1' as which, t.*
    from table1 t
    union all
    select 'table2' as which, t.*
    from table2 t
    . . .;

然后,您可以从视图中选择。

在MySQL中,这不是特别有效,因为仍然需要读取所有表。 但是,对于较小的表,这可能是一个合理的解决方案。

您应该问问自己,为什么数据库中有结构相同的表。 通常,这些应合并到一个表中。 为了提高性能,您可以对表进行分区。