Maison  >  Article  >  base de données  >  Partage de cas de requête multi-tables de base MySQL

Partage de cas de requête multi-tables de base MySQL

WBOY
WBOYavant
2022-11-01 15:13:531473parcourir

Cet article vous apporte des connaissances pertinentes sur mysql Il présente principalement le contenu pertinent sur les requêtes multi-tables et certains partages de cas, notamment l'interrogation du nom, de l'âge, du poste, etc. des employés. , j'espère que cela aidera tout le monde.

Apprentissage recommandé : Tutoriel vidéo mysql

Cas de requête multi-tables

Préparation de l'environnement de données

create table salgrade(
grade int,
losal int,
hisal int
) comment '薪资等级表';
insert into salgrade values (1,0,3000);
insert into salgrade values (2,3001,5000);
insert into salgrade values (3,5001,8000);
insert into salgrade values (4,8001,10000);
insert into salgrade values (5,10001,15000);
insert into salgrade values (6,15001,20000);
insert into salgrade values (7,20001,25000);
insert into salgrade values (8,25001,30000);

Dans ce cas, nous utilisons principalement la syntaxe de requête multi-tables expliquée ci-dessus pour compléter les 12 suivants les exigences sont suffisantes, et il n'y a que trois tables impliquées ici : la table des employés emp, la table du département et la table des niveaux de salaire salgrade.

Requête du nom, de l'âge, du poste et des informations sur le service de l'employé (jointure interne implicite)

Tableau : emp, dept

Conditions d'adhésion : emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e , dept d where e.dept_id = d.id;

Requête d'âge inférieur à The nom, âge, poste et informations sur le service d'un employé de 30 ans (jointure interne explicite)

Table : emp, dept

Conditions d'adhésion : emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e inner join dept d on e.dept_id =d.id where e.age < 30;

Requête l'ID du département des employés, nom du département

Tableau : emp, dept

Conditions de connexion : emp.dept_id = dept.id

select distinct d.id , d.name from emp e , dept d where e.dept_id = d.id;

Interrogez tous les employés de plus de 40 ans et leurs noms de département s'ils sont là ; n'est pas un service attribué, et il doit être affiché (connexion externe)

Tableau : emp, dept

Conditions de connexion : emp.dept_id = dept.id

select e.*, d.name from emp e left join dept d on e.dept_id = d.id where e.age >40 ;

Requête du niveau de salaire de tous les employés

Tableau : emp, salgrade

Conditions de connexion : emp.salary >= salgrade.losal et emp.salary <= salgrade.hisal

-- 方式一
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary >=
s.losal and e.salary <= s.hisal;
-- 方式二
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary
between s.losal and s.hisal;

Apprentissage recommandé : Tutoriel vidéo mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer