EXISTS y NOT EXISTS
Comprueba si una subconsulta encuentra alguna fila. EXISTS es verdadero cuando la encuentra; NOT EXISTS es verdadero cuando no encuentra ninguna.
Sintaxis
WHERE EXISTS (SELECT 1 FROM table WHERE …);WHERE NOT EXISTS (SELECT 1 FROM table WHERE …);
- SELECT 1 basta: EXISTS solo comprueba si se devuelve alguna fila.
Ejemplo
SELECT first_name FROM customers AS c WHERE EXISTS (SELECT 1 FROM orders AS o WHERE o.customer_id = c.customer_id);
Personas clientas que han hecho al menos un pedido.
Tablas usadas: customers, orders. Pruébalo en una lección de abajo.
Errores comunes
- Usa NOT EXISTS, no NOT IN, cuando la subconsulta pueda devolver NULL: un solo NULL hace que NOT IN no devuelva filas.