【问题标题】:Match rows together from two different tables in two separate databases将两个不同数据库中两个不同表中的行匹配在一起
【发布时间】:2013-10-31 20:09:31
【问题描述】:

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

v_esd 中有一个名为number 的列,在channel_did 中有一个名为did 的列

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

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

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    试试这个:

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

    这应该可行,也许您可​​以通过在查询中使用“AS”来缩短此语句

    【讨论】:

    • 我正在使用像 $conn=mysql_connect("localhost","user","pass"); 这样的连接字符串mysql_select_db("db_name",$conn);所以我有两个,第二个不叫 $conn 那么它怎么知道在运行 SQL Query 时要连接什么?
    • 您的意思是,您有两个 mysql 连接或两个数据库? (顺便说一句,我会使用 mysqli-functions 而不是 mysql-functions,它们更新并且工作得更好)
    【解决方案2】:
    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))
    

    类似的东西

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多