ho questa tabella:Strano comportamento con NOT IN
select count(distinct clean_deep_link) from tbl_1;
+---------------------------------+
| count(distinct clean_deep_link) |
+---------------------------------+
| 121211 |
+---------------------------------+
ho questa query:
select count(1) from tbl_1 where clean_deep_link IN
(select clean_deep_link from tbl_2);
+----------+
| count(1) |
+----------+
| 66360 |
+----------+
Ma quando cambio la query per not in
restituisce un insieme vuoto:
select count(1) from tbl_1
where clean_deep_link not in (select clean_deep_link from tbl_2);
+----------+
| count(1) |
+----------+
| 0 |
+----------+
Com'è possibile? se la sottoquery contiene circa la metà dei record, la not
della sottoquery non dovrebbe contenere l'altra metà? Cosa mi manca qui?
Grazie
Prova 'SELECT count (*), count (1) DA tbl_1 ...' – vyegorov
Avete nulli nella colonna? Cosa significa 'SELECT COUNT (*) FROM tbl_1 WHERE clean_deep_link IS NULL? Return? –
In altre parole, ci sono tre metà in una tabella SQL. –