2013-08-27 155 views
2

如何从两个不同数据库将相同查询中的数据选择到同一服务器中? 这是我在做什么,但我查询不工作:MYSQL - 从不同数据库中选择

$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++; 
    } 
} 
+0

定义 “不工作”?错误?你不能实际检查你的SELECT查询是否工作或产生错误 – 2013-08-27 23:11:48

+0

警告:mysql_numrows():提供的参数不是在/web/htdocs/...etc行88上有效的MySQL结果资源[$ number = mysql_numrows( $ result);] – Giovanni

+1

这意味着querry失败 – 2013-08-27 23:18:32

回答

3

的问题是不是不同的数据库。

您的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(); 

您的查询失败之后 - 这会给你一个不好的事的线索。

+0

归类(utf8_general_ci,隐含的)和非法混合(utf8_unicode_ci,隐含的)操作 '=' – Giovanni

+0

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 COLLATE utf8_general_ci – mkf

0

试试这个

SELECT * FROM database_2.table_2 t2 INNER JOIN database_1.table_1 t1 
    ON t1.data_1 = t2.data_2