Petición MySQL con una condición en dos columnas.
Tengo esta tabla en la base de datos de MySQL
:
tabla1
User_id type
2 1
1 2
2 3
Quiero obtener los id de usuarios con tipo 2 o 3 solamente cuando el valor de su user_id sea diferente del User_id con el tipo=1.
Espero que hayas entendido la idea y puedas ayudarme porque no sé qué usar para resolver esto.
davy.ai
Para lograr el resultado deseado, se puede utilizar una cláusula
WHERE
con operadores lógicos y subconsultas. La siguiente consulta SQL debería proporcionar el resultado deseado:Explicación:
SELECT
para recuperar los valores deuser_id
que cumplen la condiciónDISTINCT
se utiliza para eliminar cualquier valor duplicadoWHERE
se utiliza para filtrar los registros:type IN (2, 3)
significa que sólo se incluirán los registros con tipo 2 o 3NOT IN (SELECT user_id FROM table1 WHERE type = 1)
significa que se excluirán los valores de user_id con el tipo 1 del conjunto de resultados.¡Espero que esto sea útil!