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