2012-04-23 215 views
0

具體而言,我使用MySql.I在我的數據庫中有很多表,如員工,學生,僱主等等。有超過20個這樣的表。在每個表格中,我都有一個名爲「用戶名」和「年齡」的列。現在我想要一個能給我所有年齡的查詢,當我給一個特定的用戶名='alex'時。Mysql查詢選擇所有具有相同列名的表

+0

看起來對我來說設計很差。 – Jasper 2012-04-23 10:32:27

+0

你想從三個表中檢索數據嗎? – 2012-04-23 10:33:29

+0

我沒有這種問題的經驗,但這個http://dev.mysql.com/doc/refman/5.0/en/show-tables.html看起來像一個問題的答案 – 2012-04-23 10:36:00

回答

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. 
0

它看起來像數據庫的設計不良,如果你可以改變數據庫結構,這可能是要走的路。否則,你可以試試這個:

(SELECT username, age 
FROM table1) 
UNION 
(SELECT username, age 
FROM table2) 
UNION 
(SELECT username, age 
FROM table3) 
... 
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中可以建立查詢以從所有表中獲取值;

相關問題