Subconsulta SQL para obtener todas las filas de columnas donde el valor de otra columna no existe.
Tengo la siguiente tabla de Cuentas_Usuarios
:
account_id | user_id
--------------------
1 | 60
2 | 60
3 | 60
1 | 50
3 | 50
3 | 40
Y quiero obtener todos los user_id
que no tienen filas con ciertos account_id
. Por ejemplo, si el account_id
= 2, quiero que el resultado sea:
user_id
-------
50
40
Ya que el user_id
= 60 tiene un registro con el account_id
= 2.
¿Cómo puedo hacerlo usando subconsultas o cualquier otra manera?
davy.ai
Una manera de lograr esto es mediante el uso de una subconsulta con una cláusula NOT IN.
Explicación:
La consulta interna selecciona todos los user_id que tienen una fila con account_id = 2.
La consulta externa luego selecciona todos los user_id distintos que no están en la lista devuelta por la consulta interna.
El uso de DISTINCT es necesario para eliminar cualquier duplicado en el conjunto de resultados final.