web-dev-qa-db-ja.com

Joomlaデータベースと外部データベースからデータをロードできますか?

1つのクエリで2つのデータベースを同時に結合することは可能ですか?例:サーバーに何人のユーザーがいて、外部サーバーに何人のユーザーがいるのかを、すべて1つのSQLクエリで確認したいとします。

私はユニオンとJDatabaseの使用をテストしています: http://docs.joomla.org/Using_the_union_methods_in_database_querieshttp://docs.joomla.org/How_to_connect_to_an_external_database

私のコード:

 //新しいクエリオブジェクトを作成します。
 $ db1 = ExternalDataBase :: getDbo(); 
 $ db = JFactory :: getDBO(); 
 
 $ query1 = $ db1-> getQuery(true); 
 $ query1 
-> select( 'COUNT(id)AS users_number')
-> from( ' #__ users '); 
 
 $ query = $ db-> getQuery(true); 
 $ query 
-> select(' COUNT(id)AS users_number ')
-> from(' #__ users ')
-> union($ query1); 
 
 $ usersNumber = $ db-> setQuery($ query )-> loadObjectList(); 

2番目のクエリは、外部データベースからユーザーを選択する必要がありますが機能しません。

誰もがこの問題を解決する方法を知っています、ありがとう。

1
Jordi

クエリオブジェクトは、データベース接続から作成されます。 1つのクエリで2つの接続されたデータベースを管理することはできません。

要件を解決するには、MySQLレベルでアクセスを有効にすることをお勧めします。 2つのデータベースがローカルである場合は、データベースユーザーに2番目のデータベースにアクセスするためのアクセス許可に署名するを使用できます。このように、マルチデータベースクエリはMySQLサーバーによって効率的に解決されます。

2
Anibal