es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una manera de lograr esto es mediante el uso de una subconsulta con una cláusula NOT IN.

    SELECT DISTINCT user_id
    FROM Accounts_Users
    WHERE user_id NOT IN (SELECT user_id FROM Accounts_Users WHERE account_id = 2)
    

    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.

Comments are closed.