我有一个包含超过一百个表的数据库,这些表包含来自众多工作站的天气记录,每个表都是无关的,但都有几个具有相同数据集的共享列名(例如,每天的最高温度)。我无法加入表格,因为每个表格中只有几个列名称一致(这些是我想要使用的)。
我希望能够在所有表格中搜索模式和值(例如,SELECT stationName,date FROM multipleTables,其中maxTemp> 30),这些表格应返回满足条件的每个表格的站名和日期。
每个表的结构大致如下:
StationName |日期| MaxTemp | MinTemp |等
我刚开始使用SQL和数据库,所以我真的不确定如何解决这个问题。我已经尝试将数据合并到一个表中,但它很快变得混乱。我也尝试过使用union和join,但没有得到任何结果。
我正在使用phpmyadmin的mariaDB,我的原始数据是csv文件
答案 0 :(得分:0)
以下SQL针对具有匹配列的所有表生成实际查询,然后可以将这些查询作为SQL脚本依次运行 并且可以收集结果 -
SELECT
'SELECT '||U1.COLUMN_NAME||', '||U2.COLUMN_NAME||' FROM '||U1.TABLE_NAME||' WHERE MAXTEMP > 30'
FROM
USER_TAB_COLUMNS U1, USER_TAB_COLUMNS U2
WHERE U1.TABLE_NAME = U2.TABLE_NAME
AND U1.COLUMN_NAME = 'StationName '
AND U2.COLUMN_NAME = 'Date'
;