将行从两个不同数据库中的两个不同表匹配

时间:2013-10-31 20:09:31

标签: php mysql

我有两个数据库,一个有一个叫v_esd的表,另一个叫channel_did

<{1>} v_esd中有一列名为numberchannel_did列名为did

我想搜索channel_did表,并将did列值与number表中的v_esd列相匹配。如果没有匹配项,则显示结果。

我有2个不同的连接字符串,因为它们是2个完全独立的数据库

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT * FROM `database1`.`v_esd` JOIN `database2`.`channel_did` ON `database1`.`v_esd`.`number` = `database2`.`channel_did`.`did`

这应该有效,也许你可以通过在查询中使用'AS'来缩短这个声明

答案 1 :(得分:0)

SELECT * FROM db1.channel_did.did WHERE did NOT IN(SELECT number FROM db2.v_esd )

只需删除select db语句,如果它们位于同一服务器上,则您的连接将能够访问该服务器上的任何数据库。 不,如果它们位于不同的服务器上,则无法在一个查询中执行此操作。

$rs = mysql_query($query1);

    while($row1 = mysql_fetch_assoc($rs)) {
      if($i<$numrows){
        $data1[$i] = $row1;
    }
  }

$rs2 = mysql_query($query2);
    while($row2 = mysql_fetch_assoc($rs2)) {
      if($i<$numrows){
        $data2[$i] = $row2;
    }
  }
$uniquevalues = array_merge(array_diff($row1, $row2), array_diff($row2, $row1))

像这样的东西