MySQL Tutorial de subconsultas con ejemplos

ยฟQuรฉ son las subconsultas?

Una subconsulta es una consulta de selecciรณn que estรก contenida dentro de otra consulta. La consulta de selecciรณn interna se usa generalmente para determinar los resultados de la consulta de selecciรณn externa.

Veamos la sintaxis de la subconsulta:

MySQL subconsulta

Una queja comรบn de los clientes en la biblioteca de videos MyFlix es la poca cantidad de tรญtulos de pelรญculas. La direcciรณn quiere comprar pelรญculas de la categorรญa que tenga el menor nรบmero de tรญtulos.

Puedes usar una consulta como

SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);

Da un resultado

MySQL subconsulta

Veamos cรณmo funciona esta consulta.

MySQL subconsulta

Lo anterior es una forma de Subconsulta de fila. En tales subconsultas, la consulta interna puede dar solo UN resultado. Los operadores permitidos cuando se trabaja con subconsultas de fila son [=, >, =, <=, ,!=, ]

Veamos otro ejemplo,

Supongamos que desea nombres y nรบmeros de telรฉfono de miembros de personas que alquilaron una pelรญcula y aรบn no la han devuelto. Una vez que obtenga los nombres y el nรบmero de telรฉfono, llรกmelos para recordarles. Puedes usar una consulta como

SELECT full_names,contact_number FROM   members  WHERE  membership_number IN (SELECT membership_number FROM movierentals WHERE return_date IS NULL );


MySQL subconsulta

Veamos cรณmo funciona esta consulta.

MySQL subconsulta

En este caso, la consulta interna devuelve mรกs de un resultado. Lo anterior es el tipo de T.capaz de subquerery.

Hasta ahora hemos visto dos consultas, veamos ahora un ejemplo de consulta triple!!!

Supongamos que la direcciรณn quiere recompensar al miembro que paga mรกs.

Podemos ejecutar una consulta como

Select full_names From members WHERE membership_number = (SELECT membership_number FROM payments WHERE amount_paid = (SELECT MAX(amount_paid) FROM payments));

La consulta anterior arroja el siguiente resultado:

MySQL subconsulta

ยกSubconsultas versus uniones!

En comparaciรณn con Joins, las subconsultas son fรกciles de usar y de leer. No son tan complicados como Une

De ahรญ que sean utilizados frecuentemente por Principiantes de SQL.

Pero las subconsultas tienen problemas de rendimiento. Usar una combinaciรณn en lugar de una subconsulta a veces puede brindarle un aumento de rendimiento de hasta 500 veces.

Si tiene la opciรณn, se recomienda utilizar JOIN en lugar de una subconsulta.


Las subconsultas solo deben usarse como soluciรณn alternativa cuando no se puede usar una operaciรณn JOIN para lograr lo anterior

Subconsultas versus uniones

Resumen

  • Las subconsultas son consultas incrustadas dentro de otra consulta. La consulta incrustada se conoce como consulta interna y la consulta del contenedor se conoce como consulta externa.
  • Las subconsultas son fรกciles de usar, ofrecen una gran flexibilidad y se pueden dividir fรกcilmente en componentes lรณgicos individuales que componen la consulta, lo cual es muy รบtil cuando Pruebas y depurar las consultas.
  • MySQL admite tres tipos de subconsultas: subconsultas escalares, de filas y de tablas.
  • Las subconsultas escalares solo devuelven una sola fila y una sola columna.
  • Las subconsultas de fila solo devuelven una sola fila, pero pueden tener mรกs de una columna.
  • Las subconsultas de tablas pueden devolver varias filas y columnas.
  • Las subconsultas tambiรฉn se pueden utilizar en consultas INSERTAR, ACTUALIZAR y ELIMINAR.
  • Por cuestiones de rendimiento, cuando se trata de obtener datos de varias tablas, se recomienda encarecidamente utilizar JOIN en lugar de subconsultas. Las subconsultas solo se deben utilizar por un buen motivo.

Resumir este post con: