Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zählen Sie alle Datensätze, die nicht in einer anderen Tabelle vorhanden sind - SQL-Abfrage

Hier ist eine alternative Lösung mit Joins:

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

So sieht die temporäre Tabelle aus der obigen Abfrage aus:

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

Sehen Sie sich den Link unten für eine laufende Demo an.

SQLFiddle