我有两个具有相同结构的表:
表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 2
和php/mysql
,并显示不具有相同adresse
和{的数据行的lat
{1}}中的{1}}。
从示例中,显示:long
。
答案 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);
}
?>