Mysql
 sql >> Base de données >  >> RDS >> Mysql

Compter tous les enregistrements qui n'existent pas dans une autre table - Requête SQL

Voici une solution alternative utilisant des jointures :

SELECT COUNT(*)
FROM Table1_delta t1 LEFT JOIN Table1 t2
ON t1.pagename = t2.pagename
WHERE t2.status IS NULL OR t2.status = 1

Voici à quoi ressemble la table temporaire de la requête ci-dessus :

+-----------+--------+
| pagename  | status |
+-----------+--------+
| pagename1 |  2     |    # this row is NOT counted
| pagename2 |  1     |    # +1 this row has status = 1 and is counted
| pagename3 |  null  |    # +1 this row has status = null and is counted
| pagename4 |  null  |    # +1 this row is also null and is counted
+-----------+--------+

Consultez le lien ci-dessous pour une démonstration en cours d'exécution.

SQLFiddle