0

具体的には、MySql を使用しています。従業員、学生、雇用主など、データベースに多くのテーブルがあります。そのようなテーブルは 20 以上あります。各テーブルには、「ユーザー名」と「年齢」という列があります。ここで、特定の username='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';

上記のクエリから、フィールド username を持つすべてのテーブル名になります。次に、PHP ですべてのテーブルから値を取得するクエリを作成できます。

于 2012-04-23T11:01:49.777 に答える