在以下情况下, < 比较与 != 有何不同?
How is having < comparison different than != in following case?
我试图在 https://dedupeio.github.io/dedupe-examples/docs/mysql_example.html 上理解这个例子。在以下情况下,< 比较与 != 有何不同?
read_cur.execute("""
select a.donor_id,
json_object('city', a.city,
'name', a.name,
'zip', a.zip,
'state', a.state,
'address', a.address),
b.donor_id,
json_object('city', b.city,
'name', b.name,
'zip', b.zip,
'state', b.state,
'address', b.address)
from (select DISTINCT l.donor_id as east, r.donor_id as west
from blocking_map as l
INNER JOIN blocking_map as r
using (block_key)
**where l.donor_id < r.donor_id) ids**
INNER JOIN processed_donors a on ids.east=a.donor_id
INNER JOIN processed_donors b on ids.west=b.donor_id
""")
VS
read_cur.execute("""
select a.donor_id,
json_object('city', a.city,
'name', a.name,
'zip', a.zip,
'state', a.state,
'address', a.address),
b.donor_id,
json_object('city', b.city,
'name', b.name,
'zip', b.zip,
'state', b.state,
'address', b.address)
from (select DISTINCT l.donor_id as east, r.donor_id as west
from blocking_map as l
INNER JOIN blocking_map as r
using (block_key)
**where l.donor_id != r.donor_id) ids**
INNER JOIN processed_donors a on ids.east=a.donor_id
INNER JOIN processed_donors b on ids.west=b.donor_id
""")
当您使用 <
时,您可以放心,每对只会包含一次。
l.donor_id r.donor_id
1 2
3 4
而如果您使用 !=
,每对将包含两次。
l.donor_id r.donor_id
1 2
2 1
3 4
4 3
我试图在 https://dedupeio.github.io/dedupe-examples/docs/mysql_example.html 上理解这个例子。在以下情况下,< 比较与 != 有何不同?
read_cur.execute("""
select a.donor_id,
json_object('city', a.city,
'name', a.name,
'zip', a.zip,
'state', a.state,
'address', a.address),
b.donor_id,
json_object('city', b.city,
'name', b.name,
'zip', b.zip,
'state', b.state,
'address', b.address)
from (select DISTINCT l.donor_id as east, r.donor_id as west
from blocking_map as l
INNER JOIN blocking_map as r
using (block_key)
**where l.donor_id < r.donor_id) ids**
INNER JOIN processed_donors a on ids.east=a.donor_id
INNER JOIN processed_donors b on ids.west=b.donor_id
""")
VS
read_cur.execute("""
select a.donor_id,
json_object('city', a.city,
'name', a.name,
'zip', a.zip,
'state', a.state,
'address', a.address),
b.donor_id,
json_object('city', b.city,
'name', b.name,
'zip', b.zip,
'state', b.state,
'address', b.address)
from (select DISTINCT l.donor_id as east, r.donor_id as west
from blocking_map as l
INNER JOIN blocking_map as r
using (block_key)
**where l.donor_id != r.donor_id) ids**
INNER JOIN processed_donors a on ids.east=a.donor_id
INNER JOIN processed_donors b on ids.west=b.donor_id
""")
当您使用 <
时,您可以放心,每对只会包含一次。
l.donor_id r.donor_id
1 2
3 4
而如果您使用 !=
,每对将包含两次。
l.donor_id r.donor_id
1 2
2 1
3 4
4 3