Sélection dans les collections imbriquées

SyntaxeAccès aux tables imbriquées

Soit col un attribut de la table t contenant une collection imbriquée.

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
SELECT t2.* 
2
FROM t t1, TABLE(t1.col) t2;
SELECT t2.* 
FROM t t1, TABLE(t1.col) t2;

AttentionJointure avec la table imbriquée

La jointure entre la table principale et sa table imbriquée est implicitement réalisée, il ne faut pas la spécifier.

ExempleAccès à une collection imbriquée de scalaires

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
SELECT i.pknom, t.*
2
FROM tIntervenant i, TABLE(i.ltelephones) t
3
SELECT i.pknom, t.*
FROM tIntervenant i, TABLE(i.ltelephones) t
CTRL+C pour copier, CTRL+V pour coller
1
PKNOM                COLUMN_VALUE
2
-------------------- ------------
3
Crozat                  687990000 
4
Crozat                  912345678 
5
Crozat                  344231234 
6
Vincent                 344231235 
7
Vincent                 687990001 
PKNOM                COLUMN_VALUE
-------------------- ------------
Crozat                  687990000 
Crozat                  912345678 
Crozat                  344231234 
Vincent                 344231235 
Vincent                 687990001 

ExempleAccès à une collection imbriquée d'enregistrement

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
SELECT i.pknom, s.*
2
FROM tIntervenant i, TABLE(i.lspecialites) s
SELECT i.pknom, s.*
FROM tIntervenant i, TABLE(i.lspecialites) s
CTRL+C pour copier, CTRL+V pour coller
1
PKNOM                DOMAINE         TECHNOLOGIE   
2
-------------------- --------------- ---------------
3
Crozat               BD              SGBDR           
4
Crozat               Doc             XML             
5
Crozat               BD              SGBDRO          
6
Vincent              IC              Ontologies      
7
Vincent              BD              SGBDRO      
PKNOM                DOMAINE         TECHNOLOGIE   
-------------------- --------------- ---------------
Crozat               BD              SGBDR           
Crozat               Doc             XML             
Crozat               BD              SGBDRO          
Vincent              IC              Ontologies      
Vincent              BD              SGBDRO      

SyntaxeAccès aux colonnes d'une table imbriquée

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
SELECT t2.a, t2.b...
2
FROM t t1, TABLE(t1.col) t2;
SELECT t2.a, t2.b...
FROM t t1, TABLE(t1.col) t2;

SyntaxeAccès à la colonne d'une table imbriquée de scalaires

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
SELECT t2.COLUMN_VALUE
2
FROM t t1, TABLE(t1.nt) t2;
SELECT t2.COLUMN_VALUE
FROM t t1, TABLE(t1.nt) t2;

Exemple

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
SELECT i.pknom, t.COLUMN_VALUE, s.domaine
2
FROM tIntervenant i, TABLE(i.ltelephones) t, TABLE(i.lspecialites) s
SELECT i.pknom, t.COLUMN_VALUE, s.domaine
FROM tIntervenant i, TABLE(i.ltelephones) t, TABLE(i.lspecialites) s
CTRL+C pour copier, CTRL+V pour coller
1
PKNOM                COLUMN_VALUE DOMAINE                                          
2
-------------------- ------------ -----------
3
Crozat                  687990000 BD                                                 
4
Crozat                  687990000 Doc                                                
5
Crozat                  687990000 BD                                                 
6
Crozat                  912345678 BD                                                 
7
Crozat                  912345678 Doc                                                
8
Crozat                  912345678 BD                                                 
9
Crozat                  344231234 BD                                                 
10
Crozat                  344231234 Doc                                                
11
Crozat                  344231234 BD                                                 
12
Vincent                 344231235 IC                                                 
13
Vincent                 344231235 BD                                                 
14
Vincent                 687990001 IC                                                 
15
Vincent                 687990001 BD     
PKNOM                COLUMN_VALUE DOMAINE                                          
-------------------- ------------ -----------
Crozat                  687990000 BD                                                 
Crozat                  687990000 Doc                                                
Crozat                  687990000 BD                                                 
Crozat                  912345678 BD                                                 
Crozat                  912345678 Doc                                                
Crozat                  912345678 BD                                                 
Crozat                  344231234 BD                                                 
Crozat                  344231234 Doc                                                
Crozat                  344231234 BD                                                 
Vincent                 344231235 IC                                                 
Vincent                 344231235 BD                                                 
Vincent                 687990001 IC                                                 
Vincent                 687990001 BD