Tutorial sobre el uso de cláusulas FROM y EXISTS en subconsultas MySQL
DESDE
Subconsulta
DESDE
Subconsulta en cláusula
MySQL
DESDE
Subconsulta se refiere a la cláusula
FROM
como una declaración de subconsulta, y luego la consulta principal obtiene los datos requeridos de los resultados de la subconsulta. DESDE
La sintaxis de la subconsulta es la siguiente:
SELECCIONAR
...
DESDE
(subconsulta )
AS
nombre
...
La subconsulta generará una tabla temporal porque
DESDE < Cada tabla en la cláusula /p>
debe tener un nombre, por lo que se requiere
AS
nombre
. La subconsulta FROM
también se denomina subconsulta de tabla de datos derivados.
DESDE
Ejemplo de subconsulta
tabla1:
s1
s2
1
5
2
12
3
20
DESDE
p>Subconsulta
SQL
de la siguiente manera:
SELECT
s1, s2
FROM
(SELECCIONAR
s1,
s2*2
COMO
s2
DESDE
tabla1)
COMO
temp
DONDE
s1
gt;
1
Los resultados devueltos por la consulta son los siguientes:
s1
s2
2
24
3
40
Consejo
MySQL
DESDE
puede devolver un escalar, columna, fila o tabla, pero no puede ser una subconsulta correlacionada.
MySQL
Subconsulta
EXISTE
y
NO
EXISTE
p>
MySQL
EXISTE
y
NO
EXISTE
Subconsulta
p>
MySQL
EXISTE
y
NO
EXISTE
La subconsulta la sintaxis es la siguiente:
SELECCIONAR
...
DESDE
tabla
DÓNDE
EXISTE
(subconsulta)
Esta sintaxis puede entenderse como: colocar los datos de la consulta principal en la subconsulta para la verificación de condiciones y, según el resultado de la verificación ( VERDADERO
o
FALSO) para determinar si se conservan los resultados de datos de la consulta principal.
MySQL
EXISTS
Ejemplos de subconsultas
El siguiente es un ejemplo práctico para entender
EXISTS p> p>
Subconsulta.
La siguiente es la tabla de datos original:
artículo
Tabla de artículos:
usuario
Tabla de usuarios:
Queremos conocer los datos en la tabla
artículo
, pero el requisito
uid
debe estar en p>
existe en la tabla de usuarios
. La instrucción SQL
es la siguiente:
SELECT
*
FROM
artículo
DONDE
EXISTE
(SELECCIONAR
*
DE
usuario
WHERE
article.uid
=
user.uid)
Los resultados de la consulta devueltos son los siguientes:
De la declaración Se puede ver en los resultados de la ejecución que el registro
4
en la tabla de artículos
no se conserva porque los datos de este registro se devuelve en la subconsulta. El resultado es
FALSE
cuando se utiliza el
SQL
anterior
NO
EXISTE
, el resultado de la consulta es ese
artículo
uid
no existe en la tabla Registros de datos en la tabla
usuario
.
Consejo
EXISTE
(subconsulta)
Solo devuelve
VERDADERO
o
FALSE, por lo que
SELECT
*
en la subconsulta también puede ser
SELECT
/ p>1
U otro, la declaración oficial es que la lista
SELECT
se ignorará durante la ejecución real, por lo que no hay diferencia. .
EXISTE
Es posible que el proceso de ejecución real de la subconsulta se haya optimizado en lugar de una comparación paso a paso como lo entendemos. Si le preocupan los problemas de eficiencia, puede hacerlo. Realice una prueba real para determinar si hay problemas de eficiencia.
EXISTS
Las subconsultas a menudo se pueden reemplazar por expresiones condicionales, otras subconsultas o
JOIN
, lo que sea mejor. Requiere un análisis detallado. de cuestiones específicas.