Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço para construir uma consulta de banco de dados cruzado em PHP?


Você precisará que seus bancos de dados sejam executados no mesmo host.

Nesse caso, você deve poder usar mysql_select_db em seu banco de dados favorito/padrão e especificar manualmente um banco de dados externo.
$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
");

Se seus bancos de dados forem executados em um host diferente, você não poderá ingressar diretamente. Mas você pode fazer 2 consultas.
$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);