3

2 つの異なるデータベースから同じサーバーへの同じクエリでデータを選択するにはどうすればよいですか? これは私がやっていることですが、私のクエリは機能しません:

$sqlquery = "SELECT * FROM database_2.table_2 WHERE database_1.table_1.data_1 LIKE database_2.table_2.data_2";

$result = mysql_query($sqlquery);
$number = mysql_numrows($result);

$i = 0;
if ($number < 1) {
  print "DOH";

}else{
  while ($number > $i) {
    $content = mysql_result($result,$i,"database_2.table_2.data_3");
    print "$content";
    $i++;
  }
}
4

3 に答える 3

4

問題は、異なるデータベースに関するものではありません。

WHERE 句は、FROM 句で指定されていないフィールド database_1.table_1.data_1 を参照しています。

みたいな意味じゃなかった?

SELECT * 
FROM database_2.table_2 
JOIN database_1.table_1 
     ON (database_2.table_2.some_field = database_1.table_1.some_other_field) 
WHERE database_1.table_1.data_1 LIKE database_2.table_2.data_2

?

また、

echo mysql_error();

失敗したクエリの後-これにより、何が問題なのかの手がかりが得られます。

于 2013-08-27T23:28:06.163 に答える
0

これを試して

    SELECT * FROM database_2.table_2 t2 INNER JOIN database_1.table_1 t1 
    ON  t1.data_1 = t2.data_2
于 2013-08-27T23:28:33.723 に答える
0

numrows は下線付きではありませんか?

$number = mysql_num_rows($result);

http://php.net/manual/en/function.mysql-num-rows.php

于 2013-08-27T23:21:14.053 に答える