Mysql查询选择所有具有相同列名的表
具体来说,我使用的是MySql。我的数据库中有很多表,比如employee、student、employer等。有20多个这样的表。在每个表中,我都有一个名为“用户名”和“年龄”的列。现在,我需要一个查询,当我给出一个特定用户名时,该查询将为我提供所有年龄段的数据。您可能应该有一个表(例如,Mysql查询选择所有具有相同列名的表,mysql,Mysql,具体来说,我使用的是MySql。我的数据库中有很多表,比如employee、student、employer等。有20多个这样的表。在每个表中,我都有一个名为“用户名”和“年龄”的列。现在,我需要一个查询,当我给出一个特定用户名时,该查询将为我提供所有年龄段的数据。您可能应该有一个表(例如,用户),其中有一列指示该用户是什么类型的人(员工、学生、雇主等)。但是,如果必须跨多个此类表进行查询,请使用: 看起来数据库的设计很糟糕,如果你能改变数据库结构,那可能就是最好的选择。否则,您可以尝试以下方法
用户
),其中有一列指示该用户是什么类型的人(员工、学生、雇主等)。但是,如果必须跨多个此类表进行查询,请使用:
看起来数据库的设计很糟糕,如果你能改变数据库结构,那可能就是最好的选择。否则,您可以尝试以下方法:
(SELECT username, age
FROM table1)
UNION
(SELECT username, age
FROM table2)
UNION
(SELECT username, age
FROM table3)
...
用于获取具有特定列的表名和表名的查询
select table_name from information_schema.columns
where table_name in (
select table_name from information_schema.tables
where table_schema='databaseName'
) and
column_name='username';
从上面的查询中,您将得到所有具有字段用户名的表名,然后i PHP您可以构建查询以从所有表中获取值 在我看来,这似乎是一个糟糕的设计。您想从三个包含的表中检索数据吗?我没有处理此类问题的经验,但这似乎是您问题的答案
select table_name from information_schema.columns
where table_name in (
select table_name from information_schema.tables
where table_schema='databaseName'
) and
column_name='username';