Cómo resolver el problema de consulta de la tabla de conexión mysql con demasiadas tablas
SELECT nombre de campo FROM table1, table2 ...WHERE table1.field = table2.field Y otras condiciones de consulta
SELECT a.id, a . nombre, a.address, a.date, b. math, b.english, b.chinese FROM tb_demo065_tel AS b, tb_demo065 AS a WHERE a.id=b.
Nota: en el código anterior, La misma información en el campo de identificación de las dos tablas se usa como condición para establecer una asociación entre las dos tablas, pero esto no debe usarse en el desarrollo real. Lo mejor es utilizar restricciones de clave primaria y clave externa
La segunda es utilizar alias de tabla para consultas de varias tablas
, por ejemplo: SELECT a.id, a.name, a.address, b .math, b.english, b.chinese DE tb_demo065 a, tb_demo065_tel b DONDE a.id=b.id AND b.id='$_POST[id'). id='$_POST[textid]'Existen dos formas de especificar un alias para una tabla en lenguaje SQL
La primera es especificarlo con la palabra clave AS, por ejemplo
SELECCIONE a.id, a.name, a.address, b.math, b.english, b. chino DE tb_demo065 AS a, tb_demo065_tel AS b DONDE a.id=b.id
El segundo es para usar la clave Se especifica la palabra AS.
El segundo método es agregar el alias de la tabla directamente después del nombre de la tabla
SELECT a.id, a.name, a.address, b.math, b. .chino DE tb_demo065 a, tb_demo065_tel b DONDE a.id=b.idid=b.id
Se deben tener en cuenta los siguientes puntos al utilizar alias de tabla
(1) El alias es normalmente el nombre de la tabla Abreviatura de utilizado en uniones para hacer referencia a columnas específicas de una tabla. Si existe una columna con el mismo nombre en varias tablas de la combinación, el nombre de la columna debe calificarse utilizando el nombre de la tabla o un alias de tabla
(2) Si se define un alias de tabla, el nombre de la tabla no puede se puede usar nuevamente
Tres fusiones de múltiples conjuntos de resultados
En SQL, puede combinar los resultados de múltiples declaraciones SELECT usando las palabras clave UNION o ALL. Estas dos palabras clave se analizarán a continuación. Descripción:
UNION: con esta palabra clave, puede fusionar los resultados de la consulta de varias declaraciones SELECT y eliminar filas duplicadas.
ALL: con esta palabra clave, puede fusionar varios resultados de la consulta. de la instrucción SELECT, pero las filas duplicadas no se eliminarán
Cuando se utiliza la palabra clave UNION o ALL para fusionar los resultados de varias tablas, los resultados de la consulta deben tener la misma estructura y la misma estructura de datos.
e.x: SELECCIONE ID, nombre, contraseña DE tb_demo067 UNION SELECCIONE uid, precio, fecha DE tb_demo067_tel
Cuatro consultas anidadas simples
Subconsulta: una subconsulta es una Consulta SELECT que devuelve un valor único, anidado dentro de una consulta SELECT.
Las subconsultas se pueden utilizar en cualquier lugar donde se pueda utilizar una expresión.
SELECCIONE id, nombre, sexo, fecha DESDE tb_demo068 DONDE id in(SELECCIONE id DESDE tb_demo068 WHERE id='$_POST[test]')
Interlínea: use los resultados de la consulta como WHERE Las condiciones de consulta de la cláusula se denominan combinaciones internas
Cinco tipos de consultas anidadas complejas
Se pueden implementar consultas anidadas entre varias tablas a través del predicado IN, y la sintaxis es la siguiente:
p>
test_expression[NOT] IN{
subconsulta
}
Descripción del parámetro: test_expression se refiere a la expresión SQL. La expresión se refiere a la expresión SQL y la subconsulta contiene la subconsulta del conjunto de resultados.
El principio de las consultas anidadas de varias tablas: no importa cuántas tablas estén anidadas, debe haber alguna correlación entre las tablas. WHERE sub oraciones para establecer esta correlación para implementar consultas
6. Estadísticas de consultas en consultas anidadas
Al implementar consultas de varias tablas, puede utilizar los predicados CUALQUIER, ALGUNOS y TODOS. Estos predicados se conocen como predicados de comparación cuantitativa y se pueden utilizar con operadores de comparación para determinar si todos los valores devueltos satisfacen las condiciones de la consulta. Los predicados SOME y ANY existen cuantitativamente y solo se preocupan por si hay un valor de retorno que satisfaga las condiciones de búsqueda. Estos dos predicados tienen el mismo significado y se pueden usar indistintamente. El predicado ALL se denomina predicado genérico y solo se preocupa por; si existe un predicado que satisfaga las condiciones de búsqueda. El predicado TODO se llama predicado universal y solo le importa si algún predicado satisface la condición de búsqueda.
SELECT * FROM tb_demo069_people DONDE uid IN(SELECT deptID FROM tb_demo069_dept WHERE deptName='$_POST[select]')
SELECT a.id, a. '$_POST[select]')
SELECT a.id, a.FROM tb_demo067 COMO WHERE idlt;3)gt es mayor que un valor en la subconsulta
gt ;=ANY es mayor o igual a un determinado valor en la subconsulta
lt;=ANY es menor o igual a un determinado valor en la subconsulta
=ANY es igual a un determinado valor en la subconsulta Valor
! = ANY orlt;gt;ANY no es igual a un valor en la subconsulta
gt;ALL es mayor que todos los valores en la subconsulta
gt;=ALL es mayor que o igual a la subconsulta Todos los valores en
lt;=ALL es menor o igual a todos los valores en la subconsulta
=ALL es igual a todos los valores en la subconsulta
!
! =ALL o <gt;ALL no es igual a todos los valores en la subconsulta
VII. Usar la subconsulta como tabla derivada
En el proceso de desarrollo real del proyecto, lo es. A menudo se utiliza para derivar el valor de una subconsulta. A partir de una tabla con información relativamente completa, deriva una tabla de información que contiene solo unos pocos campos clave. Este objetivo se puede lograr mediante subconsultas, como
SELECT people.name. , people.chinese, people.math, people .english FROM (SELECT nombre, chino, math, english FROM tb_demo071) AS people
Nota: La subconsulta debe seguir las siguientes reglas:
(1) Interno introducido por el operador de comparación Una subconsulta contiene solo una expresión o nombre de columna. Las columnas nombradas en la cláusula WHERE en la declaración externa deben ser compatibles con las columnas nombradas en la subconsulta interna
(2) Subconsultas introducidas por operadores de comparación inmutables (la palabra clave ANY no se incluye después del operador de comparación) o ALL) no contiene una cláusula GROUP BY o HAVING a menos que el valor sea
(3) La consulta SELECT introducida con la lista SELECT introducida por EXISTS generalmente consta de *, y los nombres de las columnas no necesitan ser especificado
(4) Las subconsultas no pueden procesar sus resultados internamente
VIII Usar subconsultas como expresiones
SELECT (SELECT AVG(chino)FROM tb_demo071), (SELECT AVG (inglés)DESDE tb_demo071), (SELECT AVG(matemáticas)DESDE tb_demo071) DESDE tb_demo071
Nota: Cuando se utiliza una subconsulta, es mejor obtener un alias para el elemento de la lista para facilitar al usuario el uso de la Función mysql_fetch_array() Asignar valores a las entradas de la tabla.
Elementos de la tabla, como
SELECT (SELECT AVG(chino) FROM tb_demo071) AS yuwen, (SELECT AVG(inglés) FROM tb_demo071) AS yingyu, (SELECT AVG(matemáticas) FROM tb_demo071) AS shuxyu, ( SELECT AVG(math) FROM tb_demo071) AS shuxu, (SELECT AVG(math) FROM tb_demo071) AS shuxyu demo071) AS shuxue FROM tb_demo071
Nueve usa subconsultas para asociar datos
SELECT * FROM tb_demo072_student WHERE id=(SELECT id FROM tb_demo072_class WHERE className = '$_POST[text]')
Diez consultas conjuntas de varias tablas