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.

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.

Tags:  ,

Answer

  1. Avatar for 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:

    SELECT DISTINCT user_id
    FROM table1
    WHERE type IN (2, 3)
    AND user_id NOT IN (SELECT user_id FROM table1 WHERE type = 1)
    

    Explicación:

    • Se utiliza la instrucción SELECT para recuperar los valores de user_id que cumplen la condición
    • La palabra clave DISTINCT se utiliza para eliminar cualquier valor duplicado
    • La cláusula WHERE se utiliza para filtrar los registros:
      • La condición type IN (2, 3) significa que sólo se incluirán los registros con tipo 2 o 3
      • La subconsulta NOT 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!

Comments are closed.