1 Operación de acumulación
La estructura de la tabla es la siguiente
demanda
Conoce el puntaje, encuentra el peor ranking. Los resultados se clasifican en orden ascendente de calificación.
Declaración SQL:
select grade, sum(number) over(order by grade) as t_rank
from class_grade
order by grade;
Algunos podrían tener una versión de mysql 不支持over()函数
, 8.0
más que solo soporte.
2 Crea una vista
La estructura de la tabla es la siguiente
demanda
Creado 视图actor_name_view
, que contiene solo first_name
y last_name
dos, y dos columnas renombradas first_name
como first_name_v
, last_name
cambiado a last_name_v
.
Declaración SQL
create view actor_name_view as
select first_name as first_name_v, last_name as last_name_v from actor;
resultado de la operación
3 Conexión correcta
La estructura de la tabla es la siguiente
demanda
Encuentre que todos los empleados del departamento han sido asignados last_name
y first_name
, además dept_no
, el personal temporal no es una asignación específica del sector.
Declaración SQL
select e.last_name, e.first_name, d.dept_no from dept_emp as d
right join employees as e
on d.emp_no = e.emp_no;
# select e.last_name, e.first_name, d.dept_no from employees as e
# left join dept_emp as d
# on e.emp_no = d.emp_no;
Este tipo de pregunta 左连接
se 右连接
puede utilizar para obtener el resultado correcto.
resultado de la operación
4 Consulta izquierda, condiciones adicionales
La estructura de la tabla es la siguiente
demanda
分类为null
La película id
que se va a consultar comienza con 及名称
.
Declaración SQL
select f.film_id, f.title from film as f
left join film_category as fc
on f.film_id = fc.film_id
where category_id is NULL;
Análisis, la consulta conjunta de las tres tablas es más complicada. La declaración anterior se puede dividir en dos partes.
select f.film_id, f.title from film as f
left join film_category as fc
on f.film_id = fc.film_id;
El resultado de ejecución de esta parte es
y luego usa la condición para filtrar los registros deseados.
Por supuesto, también puede join
usar directamente la subconsulta sin usar la declaración
select film_id, title from film
where film_id not in (select film_id from film_category);
Se puede comparar con otro problema que registré .
5 exists
palabras clave
La estructura de la tabla es la siguiente
demanda
Encuentra toda la información de los empleados que no están asignados a un departamento específico
Declaración SQL
select * from employees
where not exists (select emp_no from dept_emp where employees.emp_no = dept_emp.emp_no);
Por supuesto que también puedes usar not in
en su lugar
select * from employees where emp_no
not in (select emp_no from dept_emp);