2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Combinez plusieurs tables dans une table temporaire via des liens
sélectionnez le nom de l'en-tête du nom de la table 1, nom de la table de jointure interne 2 ;
sélectionnez * parmi les employés des départements de jointure interne
sélectionnez le nom d'en-tête du nom de la table 1, nom de la table de jointure interne 2 selon la condition du lien ;
sélectionnez * dans les départements de jointure interne des employés sur employee.dept_id = department.dept_id;
Dans la nouvelle table temporaire, vous pouvez effectuer le traitement suivant
sélectionnez le nom de l'en-tête du nom de la table 1, le nom de la table de jointure interne 2 sur la condition de lien [où classer par |
sélectionnez * dans les départements de jointure interne des employés sur employee.dept_id = department.dept_id;
Après avoir défini l'alias, vous devez utiliser l'alias pour représenter le nom de la table
Interrogez le salaire total de chaque employé en 2018
select name ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by name; select salary.employee_id ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by employee_id having total > 300000 order by total desc ,employee_id asc;查询2018年总工资大于30万的员工,按2018年总工资降序排列
sélectionnez employee_id ,basic,garde à partir du salaire, jointure interne wage_grade sur salary.basic entre wage_grade.low et wage_grade.high où année(date)=2018 et mois(date)=12 ;
Interroger le salaire de base d'un employé en décembre 2018
sélectionnez garde comme niveau, compte (employee_id) comme nombre total de personnes du salaire, rejoignez salaire_grade sur salaire.basic entre salaire_grade.low et salaire_grade.haut où année (date) = 2018 et mois (date) = 12 groupe par requête garde ; 2018 Nombre d'employés au salaire de base en décembre
sélectionnez le nom, basic, garde dans la jointure interne des employés, le salaire sur les employés.employee_id = salary.employee_id, jointure interne wage_grade sur salary.basic entre wage_grade.low et wage_grade.high où année(date)=2018 et mois(date)=12 ;
Les liens externes comparent les différences entre deux tableaux
Le lien de gauche utilise les données du tableau de gauche et les données du tableau de droite pour comparer. Le résultat de la sortie affiche toutes les données de l'en-tête du tableau de gauche.
Seules les lignes correspondant au lien sont affichées à droite
sélectionnez le nom d'en-tête du nom de la table 1 à gauche du nom de la table jion 2 sur la condition du lien ;
sélectionnez dept_name, nom des départements restants, rejoignez les employés sur department.dept_id=employees.dept_id où le nom est nul ;
Le lien de droite utilise les données du tableau de droite et les données du tableau de gauche pour comparer, et toutes les données de l'en-tête du tableau de droite du résultat de sortie sont affichées.
Seules les lignes correspondant au lien sont affichées à droite
mysql> select dept_name,name dans department as d right join employee as e on d.dept_id=e.dept_id où dept_name est null ;
mettre à jour les employés définir dept_id=11 où name="bob";
Rassemblez les lignes interrogées par plusieurs commandes de sélection. Pour les requêtes de sélection multiples, le nombre d'en-têtes de table doit être cohérent.
Sortie des lignes en double supprimées
mysql> (select date , max(basic) as 工资 from salary where date=20180110)union(select date,min(basic) from salary where date=20180110);
(commande de sélection de requête) union (commande de sélection de requête);
Sortie sans déduplication
commande select query) union all (commande select query);
la commande select query contient la commande select query
Regroupement de requêtes imbriquées après où
sélectionnez le nom de l'en-tête dans library.table où le symbole de jugement du nom de l'en-tête (commande select query)
sélectionnez employee_id,date,basic,bonus à partir du salaire où année(date)=2018 et mois(date)=12 et basic > (sélectionnez basic à partir du salaire où année(date)=2018 et mois(date)=12 et employee_id=100);
Après avoir imbriqué les requêtes, utilisez les résultats de la requête entre () comme conditions de filtre,
sélectionnez le nom d'en-tête dans library.table ayant le symbole de jugement du nom d'en-tête (commande select query)
sélectionnez dept_id, comptez (nom) comme total du groupe d'employés par dept_id
ayant un total < (
sélectionnez le nombre (nom) parmi les employés où dept_id = (
sélectionnez dept_id parmi les départements où dept_name='Development Department')
Imbriquer la requête après from et utiliser les résultats de la requête de () comme tableau
sélectionnez le nom de l'en-tête dans (sélectionnez le résultat de la requête) comme nom de table temporaire où filtre la condition ;
sélectionnez employee_id,name,email,dept_name dans (sélectionnez d.dept_name,e.* dans les départements comme d, jointure interne des employés comme e sur d.dept_id=e.dept_id) comme tmp_table où dept_id=3 ;
Requête imbriquée après sélection
sélectionnez le nom de l'en-tête (commande de sélection de requête) comme nom d'en-tête dans library.table où est la condition de filtre ;
sélectionnez d.* ,(sélectionnez le nombre (nom) parmi les employés comme e où d.dept_id = e.dept_id) comme vumen parmi les départements comme d ;