Como hacer subqueries con mysql

Vamos a proceder a crear una subqueries en mysql. Esto nos servirá para poder combinar diferentes tablas. Ideal para buscadores que precisas de más de dos tablas relacionadas por algún campo.

 SELECT * FROM Empleados WHERE Salario > (SELECT MAX(Salario) FROM Empleados)

Subqueries ecalares

 SELECT * FROM Empleados WHERE Salario > (SELECT MAX(Salario) FROM Empleados)

IN y NOT IN - Esto dice si una valor de una columna está o no esta en la otra columna de la otra tabla

SELECT * FROM Clientes WHERE Id IN (SELECT Cliente FROM Ventas);

ALL y ANY - Se puede seleccionar filas que cumplen con cierta condición en las tablas

  SELECT * FROM Conformes WHERE Vencimiento > ALL (SELECT Fecha FROM Facturas);

SUBQUERIES CORRELACIONADOS - Esto es cuando hace referencia a una tabla que no figura en el FROM aunque sí debe figurar en la query que la contiene

 SELECT Articulo, Importe FROM Ventas V1 WHERE
Importe = (SELECT MAX(Importe)
FROM Ventas V2 WHERE V2.Articulo = V1.Articulo) ORDER BY Articulo;

EXIST y NOT EXIST - Te dice si tiene alguna fila o no en la query

 SELECT * FROM Sucursales WHERE EXISTS (SELECT 1 FROM Ventas WHERE Sucursal = Sucursales.Id);

Saludos!!

Un comentario para “Como hacer subqueries con mysql”

  1. claudia dice:

    Disculpa la ignorancia pero necesito que me ayudes con ésto. Tengo una tabla que contiene valores repetidos de un mismo ID y solo necesito extraer lo que le muestro más abajo.
    Un ID puede tener 1 y 2 entonces seria extraer solo ID=2, y los que sean ID=1 se quedan igual.

    Esto es lo que tengo
    col 1 col2
    pk234 1
    pk234 2
    rl35 1
    amp98 1
    con13 1
    con13 2

    Este sería el resultado
    col 1 col2
    pk234 2
    rl35 1
    amp98 1
    con13 2

    gracias

Deja un comentario