Чем <сравнение отличается от! = В следующем случае? - PullRequest
1 голос
/ 08 июля 2020

Я пытаюсь понять этот пример на https://dedupeio.github.io/dedupe-examples/docs/mysql_example.html. Чем <сравнение отличается от! = В следующем случае? </p>

 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
           """)

1 Ответ

1 голос
/ 08 июля 2020

Когда вы используете <, вы уверены, что каждая пара будет включена только один раз.

l.donor_id  r.donor_id
    1           2
    3           4

Тогда как, если вы используете !=, каждая пара будет включена дважды.

l.donor_id  r.donor_id
    1           2
    2           1
    3           4
    4           3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...