Red de conocimiento del abogados - Ley de patentes - Tutorial sobre el uso de cláusulas FROM y EXISTS en subconsultas MySQL

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>

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

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.