¿Quién puede presentar información relacionada con la consulta SQL de varias tablas? Es mejor utilizar ejemplos.
Ejemplos de código de subconsulta y consulta multitabla SQL
--Consulta de función y multitabla
--=========== == ================================================== == ========================================
- -En la base de datos de Pubs, complete la siguiente consulta
--1. Utilice combinaciones internas para consultar la información del autor y del editor en la misma ciudad en las tablas de autores y editores.
use pubs
ir
seleccionar au_id,au_lname,au_fname,teléfono como au_phone,dirección como au_address,
autores.ciudad,autores.estado,autores.zip como au_zip,pub_name, país
de los autores
unirse internamente a los editores
en autores.city=publishers.city
--2. Consulte el número de autor Todos los autores que comiencen con 1 ~ 5 y utilice la unión externa derecha en el conjunto de resultados de la consulta
: enumere los nombres de las editoriales en la misma ciudad que el autor
seleccione au_lname, au_fname,b.pub_name de los autores a
unión externa derecha
editores b
en a.city=b.city
donde au_id es como '[1-5]%'
--3. Utilice la unión automática para buscar autores que vivan en la misma área del código postal en Oakland.
seleccione distintos a.au_lname,a.au_fname
de los autores a
unión interna
autores b
en a.zip=b.zip
y a.au_id<>b.au_id
donde a.city='Oakland'
--Aprende Manual P26
--1. Omitido
--2 (1) Necesidad de obtener información sobre candidatos externos con edades comprendidas entre 35 y 40 años
uso. Reclutamiento
ir
seleccionar * del candidato externo
donde dateiff(yy, fecha de nacimiento, getdate()) entre 35 y 40
--(2) Un anuncio debe publicarse en el periódico 10 días después de la fecha actual,
--El sistema debe calcular la fecha y mostrarla en el siguiente formato
-- | Hoy | 10 días a partir de hoy |
-- |----------|---------------- -- -|
-- |
-- |----------|-------------- - -----|
seleccione getdate() como Hoy,dateadd(dd,10,getdate()) como [10 días a partir de hoy]
--(3) Estadísticas El intervalo de tiempo promedio entre la prueba del candidato externo y la fecha de la entrevista
seleccione avg(datediff(dd, fecha de la prueba, fecha de la entrevista)) como intervalo de tiempo promedio
del candidato externo p>
--(4) Necesidad de obtener los nombres de los candidatos externos y los nombres de los puestos que solicitaron
seleccione el nombre del candidato como nombre del candidato, b. p>
del candidato externo a
posición de unión interna b
en a.Número de posición=b.Número de posición
--(5) Necesidad para obtener los nombres de los candidatos externos que presentaron su solicitud en 2001 y los nombres de las agencias de contratación que los recomendaron
seleccione a. Nombre del candidato como nombre del candidato externo, b Nombre como nombre de la agencia de contratación recomendada
de candidato externo a
empresa de contratación interna b
en a. Número de empresa de contratación=b. Código de empresa de contratación
donde parte de fecha (aaaa). , Fecha de postulación) = 2001
--(6) Es necesario obtener los nombres de los candidatos externos y el nombre del periódico al que pertenece el anuncio de sus fotografías de referencia
seleccione a. Nombre del candidato, c. Nombre del periódico
del candidato externo a
anuncio de unión interna b
en a. /p>
periódico de unión interna c
on b. Número de periódico = c. código de periódico
--(7) Necesidad de obtener una lista de nombres de universidades y nombres de periódicos. y sus direcciones
seleccione nombre de la universidad como nombre, dirección de la universidad como dirección de la universidad
sindicato
seleccione nombre del periódico, dirección del periódico
--P27 Asignación de computadora
--(1) Mostrar el informe de todos los envíos en el siguiente formato (número de días de envío = fecha de llegada real-fecha de envío)
-- Número de pedido
| Fecha de envío | Fecha real de llegada | Días de envío |
-- |----------|---------|------- - -----|----------|
-- | |
-- |--------- | - -|---------|-------------|---------|
usa GlobalToyz
ir
seleccione número de pedido, fecha de envío como fecha de envío,
fecha de llegada real, dateiff(dd, fecha de envío, fecha de llegada real) como días de envío
de Estado de envío
--(2) Mostrar todos los pedidos en el siguiente formato
-- | Número de pedido | Número de comprador | |
-- |----------|----------|-----------------------|-- - ------|
-- | |
-- |----------|------- | - -|--------------|---------|
seleccione número de pedido, número de comprador, fecha de pedido como [fecha (número) ],
datepart(dw, fecha del pedido) como día de la semana
desde el pedido
--(3) Mostrar todos los nombres de juguetes y categorías
desde el pedido
p>
seleccione el nombre del juguete, el nombre de la categoría
del juguete a
unión interna a la categoría b
en a.número de categoría=b.número de categoría
seleccione el nombre del juguete, nombre de categoría del juguete a, categoría b donde a.número de categoría=b.número de categoría
--(4) Mostrar los nombres y marcas comerciales de todos los juguetes en el siguiente formato y tipo
-- | Nombre de la marca | --------|-------- -|--------|
-- | |----------|----- ----|--------|
seleccione el nombre del juguete, la marca, el nombre de la categoría
del juguete a
categoría de unión interna b
en a.Número de categoría=b.Número de categoría
marca registrada de unión interna c
en a.Trademark=c.Número de marca
seleccione nombre del juguete, nombre de marca, nombre de categoría del juguete a, categoría b, marca registrada c
donde a.número de categoría= b.número de categoría y a.trademark=c.número de marca
--El formato (5) muestra el número de pedido del juguete, la identificación del juguete y las instrucciones del paquete de regalo utilizadas para el juguete
- - | número de pedido | número de juguete | información del embalaje |
-- |----------|---------|-------- -|
-- | | |
-- |----------|---------|---- -----|
seleccione el número de pedido, número de juguetes, información como información del embalaje
de los detalles del pedido
--(6) Mostrar todo el comprador nombres y sus
Información del pedido comprado (si el comprador tiene un pedido o no)
-- |Nombre del comprador | Hora del pedido | -----|---------|---------|---------|
-- |
-- |----------|---------|---------|-------- - |
seleccione nombre como nombre del comprador, número de pedido, fecha del pedido como hora del pedido, precio total como monto del pedido
del comprador a
orden de unión externa izquierda b
en a. Número de comprador = b. Número de comprador
--(7) Muestra el número de pedido, la fecha del pedido y la ubicación de cada pedido en el siguiente formato Temporada
-- | Número de pedido | Fecha de pedido | Temporada
-- |----------|--------| ----|
-- | | |
-- |----------|------ ---|- --------|
seleccione número de pedido, fecha de pedido, parte de fecha(qq, fecha de pedido) como temporada
desde pedido
-- (8) Mostrar todos los ID de comprador, nombres, números de teléfono y destinatarios de los pedidos correspondientes
-- | Nombre del comprador | Teléfono | ----------|---------|---------|---------|-- ----| p>
-- | | | |
-- |----------|--------- | ---|---------|------|
seleccione a. Nombre como Nombre, a. nombre, c. número de teléfono
del comprador a
pedido de unión interno b
en a. Número del comprador=b. Número del comprador
destinatario de unión interna c
on b. Número de pedido = c. Número de pedido
--(9) Mostrar todos los compradores y el nombre y dirección del destinatario
- - | Nombre| Dirección|
-- |----------|--------- |
-- | p>
-- |----------|----------|
seleccione nombre como nombre, dirección del destinatario
union
seleccione nombre, dirección del comprador
--(10) Mostrar todos los nombres de juguetes y la cantidad de ventas de juguetes
seleccione nombre de juguete, suma (cantidad de ventas) como cantidad total de ventas
del juguete a
unión externa izquierda de ventas mensuales b
p>
en a.toy number=b .número de juguete
agrupar por nombre de juguete
--(11) aparece entre los 3 primeros con mayor monto de gasto en mayo de 2001 Nombre del comprador y monto de consumo
seleccione los 3 primeros como nombre del comprador, suma (precio total) como cantidad de consumo <
/p>
del comprador a
orden de unión interna b
en a.Shopper ID=b.Shopper ID
donde la fecha del pedido entre '2001 -05-01' y '2001-05-31 23:59:59'
agrupar por nombre
ordenar por suma (precio total) desc
--================================================ == ========================
--Subconsulta
--==== === ================================================ === ==============
--P31 Prueba de computadora del manual de estudio
--(1) Lista de candidatos externos" Empresa de contratación "Chen Xiaoxiao" en la ciudad
usa Reclutamiento
ir
selecciona * de la empresa de reclutamiento
donde ciudad en
( seleccione ciudad del candidato externo
donde nombre del candidato='Chen Xiaoxiao')
--(2) Enumere los nombres de los candidatos con "capacidades de red"
seleccione el nombre del candidato del candidato externo
donde el código del candidato está
(
seleccione el código del candidato de las habilidades del candidato
donde el número de habilidad está en
(
seleccione el número de habilidad de la habilidad
donde descripción de la habilidad='habilidad de red'
)
)
--(3) Listar las empresas de contratación que no han recomendado candidatos
seleccione * de la empresa de contratación
dónde el código de la empresa de contratación
no en
(seleccione el número de la empresa de contratación del candidato externo
donde el número de la empresa de contratación no es nulo)
--(4) Enumere la información de los candidatos externos cuyos puntajes de exámenes están por encima del puntaje promedio de todos los candidatos externos
Seleccione * de candidatos externos
Donde puntajes de exámenes>
(Seleccione promedio (puntuación de examen) de candidato externo)
--(5) Enumere la información de los candidatos externos cuyos puntajes en las pruebas están por encima del puntaje promedio de los solicitantes para cada "puesto"
seleccione * del candidato externo como ,
(seleccione el número de puesto, promedio (puntuación de la prueba) como puntaje promedio
del candidato externo
grupo por número de puesto) como b
donde a.número de posición=b.número de posición y puntuación de la prueba>puntuación promedio
--(6) Enumere el nombre de cada empleado y el número de habilidades que posee
seleccione el nombre del empleado, número de habilidades que posee
del empleado a, (seleccione el número de empleado, cuente (número de habilidad) como número de habilidades que posee el empleado Grupo de habilidades por número de empleado) b
donde a. número = b. número de empleado
--(7) Obtenga el salario total de todos los empleados del departamento de ventas en 2001
p>seleccione suma(salario mensual) como salario total de salario
donde datepart(yy, fecha de pago)=2001 y número de empleado en
(sel
ect número de empleado de empleado
donde número de departamento=
(seleccione el número de departamento de departamento
donde nombre de departamento='Departamento de Ventas')
)
--Operación de laboratorio
--(1) Consultar pedidos de juguetes "caza de ballenas"
use GlobalToyz
ir
seleccione * en los detalles del pedido donde está el número de juguete
(seleccione el número de juguete del juguete donde nombre del juguete='Whaling')
- -(2) Consulta juguetes cuyo precio es inferior al precio medio de todos los juguetes
seleccione * de los juguetes
dónde precio
(seleccione el promedio (precio) de los juguetes)
--(3) Consultar juguetes cuyo precio sea superior al precio medio de juguetes similares
seleccione * del juguete a
dónde precio>
(seleccione promedio(precio) del juguete b
donde a.número de categoría=b.número de categoría agrupar por número de categoría)
--(4) Consulta no vendido Juguete información pasada (implementada mediante dos métodos)
seleccione * de los juguetes
donde el número de juguete no está
(seleccione el número de juguete de las ventas mensuales)
seleccione * del juguete a
donde no existe
(
seleccione * de las ventas mensuales b
donde a.toy number=b.número de juguete
)
--(5) Consulta el nombre del juguete con el precio de venta más alto y más bajo
-- Más alto precio | Precio más bajo |
-- |-----------|----------|
-- | /p>
-- |-----------|---------|
seleccione (seleccione el nombre del juguete del juguete donde precio=( seleccione max(precio) del juguete)) como el precio más alto,
(seleccione el nombre del juguete del juguete donde precio=(seleccione min(precio) del juguete)) como el precio más bajo
- -(6) Consultar quiénes son los destinatarios de cada pedido comprado por el cliente "Larson"
seleccione * del destinatario donde está el número de pedido
(seleccione el número de pedido del pedido donde está el comprador number=
(seleccione el número del comprador del comprador donde nombre='Larson'))
--(7) Consulta la categoría de cada juguete, información de la categoría de juguete con categorías de juguete superiores a 3
seleccione * de la categoría donde está el número de categoría
(seleccione el número de categoría del grupo de juguetes por número de categoría que tenga recuento (número de juguete)>3)