2.6 DQL requête de jointure

Tout d'abord, le sens de

Lorsque la requête porte sur le champ de plusieurs tables, vous avez besoin de l'utilisation de plusieurs jointures de tables

sélectionner le champ 1, champ 2

Table de 1, le tableau 2, ...;

 

produit cartésien : Quand une pluralité de tables de requête, sans l' ajout d' un conditions de connexion efficace, résultant en une pluralité de rangées pour obtenir une description complète des connexions
Comment résoudre : Ajouter un conditions de connexion valides
 
 
 
 

En second lieu, la classification

 
Par année:
    SQL92 :
  •                équivalent
  •                Nonequijoins
  •                Depuis la connexion
 
         Il supporte également une partie de connexion extérieure (pour Oracle, SQL Server, mysql pas pris en charge)
 
    SQL99: [recommandé]
          en
  •                équivalent
  •                Nonequijoins
  •                Depuis la connexion
          jointure externe
  •                extérieur gauche
  •                Juste à l'extérieur
  •                externe complète (MySQL ne supporte pas)
          Cross-Connect
               
 
 
 
 

Trois, la syntaxe SQL92

1, la liaison équivalente

syntaxe:
   sélectionnez la requête liste
   Alias ​​dans une table, le tableau 2 alias
   où le tableau 1.key = Tableau 2.key
   [Et] Filtres
   [Champ] groupe par groupe
   [Avoir] le dépistage groupé
   [Trier par champ de tri]
 
Caractéristiques:
   ① tableau général Surnommé
   ② peut changer l'ordre des multi-tables
   Tableau ③n reliant au moins n-1 connexions conditions requises
   ④ Résultats Equijointures est l'intersection d'une table multi-pièce
 
 

2, une connexion non-équivalent

syntaxe:
   sélectionnez la requête liste
   Alias ​​dans une table, le tableau 2 alias
   où la condition de non-connexion équivalent
   [Et] Filtres
   [Champ] groupe par groupe
   [Avoir] le dépistage groupé
   [Trier par champ de tri]

3, étant donné que la connexion

 
syntaxe:
    sélectionnez la requête liste
   à partir d'un alias de table, alias Tableau 2
   où l'équivalent de l'état de connexion
   [Et] Filtres
   [Champ] groupe par groupe
   [Avoir] le dépistage groupé
   [Trier par champ de tri]
 
 

Quatre, la syntaxe SQL99

1, le connecteur

syntaxe:
sélectionnez la requête liste
à partir du tableau 1 alias
[Interne] dans le tableau 2 rejoindre alias sur la condition de connexion
où Filtres
groupe par la liste des groupes
Après avoir examiné groupe
afin de trier la liste
clause limite;
 
Caractéristiques:
① l'ordre peut être le tableau inverse
② Les résultats de plusieurs tables liées intersection =
③n表连接至少需要n-1个连接条件
 
分类:
等值连接
非等值连接
自连接
 
 
 
 

2、外连接

语法:
select 查询列表
from 表1 别名
left|right|full【outer】 join 表2 别名 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表
limit 子句;
特点:
①查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null
②left join 左边的就是主表,right join 右边的就是主表
  full join 两边都是主表
③一般用于查询除了交集部分的剩余的不匹配的行
 

3、交叉连接

 
语法:
select 查询列表
from 表1 别名
cross join 表2 别名;
 
特点:
类似于笛卡尔乘积
 
 
 
 
 

Je suppose que tu aimes

Origine www.cnblogs.com/huabro/p/12624209.html
conseillé
Classement