sql >> Base de Datos >  >> RDS >> Mysql

Cuente todos los registros que no existen en otra tabla - Consulta SQL

Aquí hay una solución alternativa usando uniones:

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

Así es como se ve la tabla temporal de la consulta anterior:

+-----------+--------+
| 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
+-----------+--------+

Echa un vistazo al siguiente enlace para ver una demostración en ejecución.

SQLFiddle