0

I have two tables with the same structure:

Table 1

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

Table 2

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

I want to compare Table 1 and Table 2 in php/mysql and display the adresse of the data row that doesn't have the same lat and long in Table 2.

From the example, display: aaaaaa.

OhBeWise
  • 5,350
  • 3
  • 32
  • 60
crixus
  • 1
  • 1

2 Answers2

2

To get the address of pairs from table one that don't exist in table two, you can use the NOT IN operator, like this:

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

Here is an SQL Fiddle example.

AdamMc331
  • 16,492
  • 10
  • 71
  • 133
2

you can use a '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);
}

?>

you can also use a sub-query like this:

<?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);
}

?>
william.eyidi
  • 2,315
  • 4
  • 27
  • 39