sql >> データベース >  >> RDS >> Mysql

PHPでクロスデータベースクエリを作成するにはどうすればよいですか?

    データベースを同じホストで実行する必要があります。

    その場合は、お気に入り/デフォルトのデータベースでmysql_select_dbを使用して、外部データベースを手動で指定できるはずです。

    $db = mysql_connect($hots, $user, $password);
    mysql_select_db('my_most_used_db', $db);
    
    $q = mysql_query("
        SELECT *
        FROM   table_on_default_db a, `another_db`.`table_on_another_db` b
        WHERE  a.id = b.fk_id
    ");
    

    データベースが別のホストで実行されている場合、直接参加することはできません。ただし、2つのクエリを実行できます。

    $db1 = mysql_connect($host1, $user1, $password1);
    $db2 = mysql_connect($host2, $user2, $password2);
    
    $q1 = mysql_query("
        SELECT id
        FROM   table
        WHERE  [..your criteria for db1 here..]
    ", $db1);
    $tmp = array();
    while($val = mysql_fetch_array($q1))
        $tmp[] = $val['id'];
    
    $q2 = mysql_query("
        SELECT *
        FROM   table2
        WHERE  fk_id in (".implode(', ', $tmp).")
    ", $db2);
    


    1. ORA-02287:シーケンス番号はここでは許可されていません

    2. C#でバイトまたはショートの代わりにintを使用する必要があるのはなぜですか

    3. row_to_jsonを使用したPostgres再帰クエリ

    4. SQLクエリ:最新のNを除くすべてのレコードをテーブルから削除しますか?