0

具体来说,我正在使用 MySql。我的数据库中有很多表,比如员工、学生、雇主等。这样的表有 20 多个。在每个表中,我都有一个名为“用户名”和“年龄”的列。现在我想要一个查询,当我给一个特定的用户名='alex'时,它会给我所有的年龄。

4

3 回答 3

1

您可能应该有一个表(例如Users),其中有一指示该用户是什么类型的人(员工、学生、雇主等)。但是,如果您必须跨多个此类表进行查询,请使用UNION

SELECT age FROM employee WHERE username = 'alex' UNION ALL
SELECT age FROM student  WHERE username = 'alex' UNION ALL
SELECT age FROM employer WHERE username = 'alex' -- etc.
于 2012-04-23T10:35:29.153 回答
0

看起来数据库设计不佳,如果您可以更改数据库结构,那可能就是要走的路。否则,你可以试试这个:

(SELECT username, age
 FROM table1)
UNION
(SELECT username, age
 FROM table2)
UNION
(SELECT username, age
 FROM table3)
...
于 2012-04-23T10:37:34.610 回答
0

查询以获取具有特定列的表名

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';

从上面的查询中,您将是所有具有字段用户名的表名,然后我可以在 PHP 中构建查询以从所有表中获取值;

于 2012-04-23T11:01:49.777 回答