如何比较两个相同结构的mysql表

时间:2015-05-01 16:05:32

标签: php mysql

我有两个具有相同结构的表:

表1

---------------------------------------       
id    long        lat          adresse
---------------------------------------
1     8,767676    50,55599999  aaaaaa
2     3,77777777  40,55599999  xxxxxx
-
-
---------------------------------------

表2

---------------------------------------     
id    long        lat          adresse
---------------------------------------
1     3,77777777  40,55599999
2     
-
-
---------------------------------------

我想比较Table 1中的Table 2php/mysql,并显示不具有相同adresse和{的数据行的lat {1}}中的{1}}。

从示例中,显示:long

2 个答案:

答案 0 :(得分:2)

要从表2中获取表2中不存在的对的地址,可以使用NOT IN运算符,如下所示:

SELECT address
FROM t1
WHERE (longitude, lat) NOT IN (SELECT longitude, lat FROM t2);

以下是SQL Fiddle示例。

答案 1 :(得分:2)

您可以使用'join'。     

query = "SELECT table_1.address
     FROM table_1
     JOIN table_2
     ON table_1.id = table_2.id
     WHERE table_1.lat != table_2.lat
     AND table_1.longitude != table_2.lat";

$mysqli = @new mysqli($host, $username, $password, $database);

if($result = $mysqli->query($query)){
    var_dump($result);
}

?>

你也可以使用这样的sub-query

<?php

query = "SELECT address
         FROM table_1
         WHERE (long, lat) NOT IN (SELECT long, lat FROM table_2)";

$mysqli = @new mysqli($host, $username, $password, $database);

if($result = $mysqli->query($query)){
    var_dump($result);
}

?>