2012-07-30 3 views
1

2 개의 동일한 테이블이있는 동일한 서버에 2 개의 데이터베이스가 있습니다.mulitiple database select php mysql

두 테이블에서 모든 레코드를 선택하고 하나의 배열로 결합하고 싶습니다. 나는 아래 스크립트로 주위를 어지럽 혀왔다. 어떤 이유로 db2.tbl 레코드를 두 번 반환하고 db1.tbl 레코드를 전혀 반환하지 않습니다. 하나의 데이터베이스에서 데이터를 선택하려고하면 둘 다 잘 작동합니다. 아무도 문제를 보지 않습니까?

<?PHP 
require_once("config.php"); 

$conn = @mysql_connect($dbhost, $dbuser, $dbpass)or die ('Error connecting to mysql server'.mysql_error()); 
$q = mysql_query("SELECT * FROM db1.tbl JOIN db2.tbl"); 
var_dump(mysql_num_rows($q)); 
while($arr = mysql_fetch_assoc($q)){ 
    var_dump($arr); 
} 

?> 

답변

1

이게 원하는가요? database1의 모든 레코드 다음에 database2의 모든 레코드가옵니다.

$q = mysql_query("SELECT * FROM db1.tbl UNION SELECT * FROM db2.tbl"); 

나는 두 데이터베이스 모두에 대한 액세스 권한이 있다고 가정합니다.

+0

특히 UNION에서 절대로 SELECT *를 사용하지 마십시오. 특히 테이블에 동일한 열이있는 것을 모르는 경우 (OP에서 말한 것이 아니기 때문에) –

+0

그는 첫 번째 줄에서 말했습니다.) 그러나 나는 동의합니다 당신은 분명해야합니다. – pritaeas

+1

그는 그렇게했습니다! 'UNION'의'SELECT *'에 대한 코멘트는 ... –

0

귀하의 검색어가 작동해야합니다. 그러나 데이터베이스 이름 테이블 이름에 기울임 (`)을 추가하십시오. mysql에서 쿼리를 먼저 실행하여 php로 실행하는 것보다 ok인지 확인하십시오.