subconsultas son consultas anidadas dentro de otra consulta. Subconsultas permiten separar cada parte de la declaración y proporciona una alternativa más fácil de leer para la realización de operaciones que requieren complejas uniones y sindicatos sin subconsultas. Subconsultas MySQL puede devolver un solo valor , una hilera, una columna o una tabla. La sintaxis
La sintaxis básica de una subconsulta es la siguiente:
SELECT * FROM tabla WHERE Columna = ( SELECT ColumnB DE tabla2 ) ;
Subconsultas debe ser un SELECT, INSERT, UPDATE, DELETE SET o haga declaración, y no se puede modificar una tabla y seleccionar de la misma en la subconsulta .
subconsultas se encuentran generalmente en el lado derecho de la cláusula WHERE, que puede contener cualquier de la siguiente comparación y operadores lógicos : = ( igual ) , < > ( no igual) , < = ( menor o igual ) , > = ( mayor o igual ) , < ( menor que) , > , ( mayor que) , eNTRE (valor está entre dos valores ) NO ( NOT lógico ) , Y ( AND lógico) , O ( OR lógico) . También pueden contener DISTINCT , GROUP BY , ORDER BY y LIMIT palabras clave . Incluso se puede utilizar en conjunto con los estados unirse. Aparte de las restricciones anteriores, hay muy pocas limitaciones impuestas a subconsultas dentro de MySQL.
Ni siquiera hay una restricción en el número de subconsultas que se pueden encontrar en un comunicado. Siempre y cuando usted coloca cada subconsulta entre paréntesis, puede tener tantas consultas anidadas que usted necesita para encontrar sus datos. Más información sobre las subconsultas se puede encontrar en el manual de referencia de MySQL (ver Recursos )
Ejemplo
Suponga que tiene dos tablas: . La primera contiene el Nombre , Apellido Nombre, Dirección y código postal de los miembros de su lista de correo , y el segundo contiene la ciudad , estado y código postal . Si quieres encontrar los nombres de los miembros que viven en Georgia , puede utilizar múltiples sentencias de selección . La primera sentencia sería encontrar los códigos postales de Georgia :
SELECT codigo postal DESDE DONDE estado = "Georgia " ;
Entonces emitiría una sentencia select para cada código postal devuelto :
SELECT fname , lname dirección DESDE DONDE zip = " [ código postal ]" ;
Este método es muy lento y propenso a errores. Es fácil pasar por alto un código postal , especialmente si hay una gran cantidad de ellos
Una forma más fácil para completar su tarea sería la de emitir la primera declaración como una subconsulta a la segunda declaración: .
< P > SELECT fname , lname dirección DESDE DONDE zip = (SELECT codigo postal DESDE DONDE estado = "Georgia " ) .
Esta consulta devolverá todos los miembros de su lista de correo que viven en Georgia con una consulta < br >