Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създам кръстосана заявка за база данни в PHP?

Ще ви трябват вашите бази данни, за да работят на същия хост.

Ако е така, би трябвало да можете да използвате mysql_select_db във вашата любима/по подразбиране 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL инжекция, която заобикаля mysql_real_escape_string()

  2. mysql импортиране на windows

  3. Има ли MySQL команда, която да имплементира нещо като drop tables освен t1,b2?

  4. Неволи на MariaDB 10 CentOS 7 при преместване на datadir

  5. Вмъкване с помощта на PreparedStatement. Как да увелича автоматично идентификатора?