データベースが同じサーバー上にある限り、クロス データベース結合を使用するだけです。データへのアクセスに使用される DB ログインにも、両方のデータベースに対する権限が必要です。何かのようなもの:
SELECT AA.userID, BA.first, BA.last
FROM databasename.schema.table AA
INNER JOIN databasename.schema.table BA ON AA.userID = BA.userID
コメントへの対応:
複数のログインに関する部分を正しく読んでいるとは思えません。申し訳ありません。1 つの接続で 2 つの異なる MySQL ログインを使用することはできません。複数のクエリを実行する必要がある場合、実際には 3 つのオプションしかありません。A) 最初の結果セットをループして、複数のクエリを実行します。B) userID IN (@firstResultSet) で WHERE 句を使用するクエリを実行し、最初の結果セットを渡します。C) 2 番目の DB からすべてを選択し、それらをコードで結合します。
これら 3 つのオプションはどれもあまり良くないので、2 つの DB のいずれかでユーザー権限を変更できないのはなぜでしょうか? また、なぜ 20,000 人のユーザーの名前と ID を選択する必要があるのでしょうか? これが何らかのタイプのデータ ダンプでない限り、使いやすく、クエリの負荷が少ないデータを表示する別の方法を探しています。
とはいえ、どのオプションを選択するにしても、さまざまな状況に基づいています。レコード数が 1,000 未満の場合は、オプション B を使用します。レコード数が多い場合は、おそらくオプション C を使用し、2 つの結果セットを結合可能なもの (array_combine を使用するなど) に配置しようとします。