sql >> Database >  >> RDS >> Mysql

Tel alle records die niet bestaan ​​in een andere tabel - SQL-query

Hier is een alternatieve oplossing met 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

Dit is hoe de tijdelijke tabel van de bovenstaande query eruit ziet:

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

Bekijk de onderstaande link voor een lopende demo.

SQLFiddle



  1. Is het goed om htmlspecialchars() te gebruiken voor het invoegen in MySQL?

  2. mysqldump-fout:Pakket groter dan max_allowed_packet'

  3. Voeg bitsgewijze-OF toe in een subquery

  4. Binaire gegevens niet correct opgeslagen in MySQL