2012-04-23 19 views
0

具体的には、MySqlを使用しています。私のデータベースには従業員、学生、雇用者などのような多くのテーブルがあります。各テーブルには、「username」と「age」という列があります。今私は特定のユーザー名= 'alex'を与える​​すべての年齢を与えるクエリをしたい。Mysql同じ列名を持つすべてのテーブルを選択するクエリ

+0

私には貧弱なデザインのようです。 – Jasper

+0

3つのテーブルからデータを取得しますか? –

+0

私はこの種の問題を経験していませんが、このhttp://dev.mysql.com/doc/refman/5.0/ja/show-tables.htmlはあなたの問題に対する答えのようです –

答えて

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

これは、データベースの貧弱な設計のように見え、あなたは、データベースの構造を変更することができれば、それはおそらく移動するための方法です。その後、私はあなたが構築することができます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'; 

を持つために

(SELECT username, age 
FROM table1) 
UNION 
(SELECT username, age 
FROM table2) 
UNION 
(SELECT username, age 
FROM table3) 
... 
0

クエリ:そうでなければ、あなたはこれを試みることができますすべてのテーブルから値を取得するクエリ。

関連する問題