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