一般的な情報と私のアプリケーションを使用するすべての企業の情報を含む中央データベースを持つアプリケーションがあります。2つのデータベースに1つの名前が含まれているときに結合する
ので、データベース1はmain
で、引数のために、次のようになり、テーブルusers
あります
id | name | api_key | databasename
1 | Company1 | 12345678 | user_data_1
したがって、データベース2をuser_data_1
という名前で、次のようになります。
id | name | password | more things...
1 | My Name | abc123 | ....
を
これを書くと、これらのデータベースに参加して会社とユーザーのデータを1回で取得できます:
SELECT d2.name as username, d1.*
FROM main.users d1, user_data_1.users d2
WHERE d1.`api_key`='12345678' AND d2.password='abc123'
今、私はできることを示唆するものが見つからないので、答えは「いいえ」と確信していますが、最初の行から2番目のデータベースの名前を動的に取得し、 (d1.databasename)は、第2のSQLにおけるがapi_key
カラムによって最初のデータベースで見つかった行から第二のデータベースの名前を取得しようとする試みである
SELECT d2.name as username, d1.*
FROM main.users d1, **(d1.databasename)**.users d2
WHERE d1.`api_key`='12345678' AND d2.password='abc123'
。
あなたはおそらく、動的SQLでこれを行うが、あなたのことができます実際にこれを行う必要がある場合は、デザインに問題がある可能性があります。 –
Hmm ..私は本当にこれを行う必要はありません。ラウンドがありますが、一度に2ビットのデータを取得するヒットメソッドのように思えます。 –