sql >> Database teknologi >  >> RDS >> SQLite

SQLite - JOIN-sætninger

En join-sætning bruges til at forespørge data på tværs af flere relaterede tabeller.

Nu hvor vi har skabt en relation mellem to tabeller, kan vi nu bruge begge tabeller inden for en enkelt SELECT erklæring for at returnere relaterede data. Vi kan gøre dette ved at bruge en JOIN erklæring.

Vi vil forespørge i vores tabeller ved at bruge de tre vigtigste jointyper:

  • Indre tilslutning
  • Venstre ydre forbindelse
  • Cross Join

Det indre led

En indre joinforbindelse er en joinforbindelse, hvor værdierne i de kolonner, der forbindes, sammenlignes ved hjælp af en sammenligningsoperator. I SQL-standarden kan indre joinforbindelser angives i enten FROM eller WHERE klausul.

For eksempel kunne vi køre en forespørgsel for at hente en liste over alle kunstnere og deres album:

SELECT ArtistName, AlbumName 
FROM Artists AS a 
  INNER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId
ORDER BY ArtistName;

Resultat:

ArtistName    AlbumName           
------------  --------------------
Iron Maiden   Killers             
Iron Maiden   Powerslave          
Iron Maiden   Somewhere in Time   
Joe Satriani  Surfing with the Ali
Joe Satriani  Flying in a Blue Dre
Joe Satriani  Black Swans and Worm
Mr Percival   Out of the Loop     
Primus        Suck on This        
Primus        Pork Soda           
Primus        Sailing the Seas of 
Strapping Yo  Heavy as a Really He
The Wiggles   Yummy Yummy         
The Wiggles   Big Red Car   

Du har måske bemærket, at ovenstående kolonner ikke er helt brede nok til vores nye data (nogle af dataene bliver afkortet). For at vise alle data bliver vi nødt til at øge kolonnestørrelserne igen.

Noget som .width 20 50 burde være tilstrækkeligt for nu.

Vi kunne også bruge en WHERE klausul for at indsnævre resultaterne til en bestemt kunstner:

SELECT b.AlbumName 
FROM Artists AS a 
  INNER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId 
WHERE a.ArtistName = 'The Wiggles';
AlbumName           
--------------------
Yummy Yummy         
Big Red Car

Men WHERE kunne bare nemt have været en AND for at udvide ON klausul:

SELECT b.AlbumName 
FROM Artists AS a 
  INNER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId 
  AND a.ArtistName = 'The Wiggles';

The Left Outer Join

En ydre joinforbindelse returnerer alle rækker fra mindst én af tabellerne eller visningerne nævnt i FROM klausul, så længe disse rækker opfylder en hvilken som helst WHERE eller HAVING søgebetingelser.

Med venstre ydre join, hentes alle rækker fra den refererede tabel til venstre.

Så i det følgende eksempel er alle rækker fra Kunstnerne tabellen returneres, uanset om der er en relateret post i Album tabel.

SELECT a.ArtistName, b.AlbumName 
FROM Artists AS a 
  LEFT OUTER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId;

Resultat:

ArtistName            AlbumName                                         
--------------------  --------------------------------------------------
Joe Satriani          Black Swans and Wormhole Wizards                  
Joe Satriani          Flying in a Blue Dream                            
Joe Satriani          Surfing with the Alien                            
Steve Vai                                                               
The Tea Party                                                           
Noiseworks                                                              
Wayne Jury                                                              
Mr Percival           Out of the Loop                                   
Iron Maiden           Killers                                           
Iron Maiden           Powerslave                                        
Iron Maiden           Somewhere in Time                                 
Atmasphere                                                              
Ian Moss                                                                
Magnum                                                                  
Strapping Young Lad   Heavy as a Really Heavy Thing                     
Slayer                                                                  
Primus                Pork Soda                                         
Primus                Sailing the Seas of Cheese                        
Primus                Suck on This                                      
Pat Metheny                                                             
Frank Gambale                                                           
Frank Zappa                                                             
The Wiggles           Big Red Car                                       
The Wiggles           Yummy Yummy                                       

Korset slutter sig til

En krydsforbindelse (der ikke har en WHERE). klausul) resulterer i det kartesiske produkt af de tabeller, der er involveret i joinforbindelsen. Derfor er størrelsen af ​​resultatsættet antallet af rækker i den første tabel ganget med antallet af rækker i den anden tabel.

Vær forsigtig med krydsforbindelsen. Det kan returnere ekstremt store resultatsæt!

SELECT ArtistName, AlbumName FROM Artists AS a 
CROSS JOIN Albums AS b
ORDER BY ArtistName;

Resultat (du bliver sandsynligvis nødt til at rulle):

ArtistName            AlbumName                                         
--------------------  --------------------------------------------------
Atmasphere            Killers                                           
Atmasphere            Powerslave                                        
Atmasphere            Surfing with the Alien                            
Atmasphere            Heavy as a Really Heavy Thing                     
Atmasphere            Yummy Yummy                                       
Atmasphere            Out of the Loop                                   
Atmasphere            Suck on This                                      
Atmasphere            Pork Soda                                         
Atmasphere            Sailing the Seas of Cheese                        
Atmasphere            Flying in a Blue Dream                            
Atmasphere            Black Swans and Wormhole Wizards                  
Atmasphere            Somewhere in Time                                 
Atmasphere            Big Red Car                                       
Frank Gambale         Killers                                           
Frank Gambale         Powerslave                                        
Frank Gambale         Surfing with the Alien                            
Frank Gambale         Heavy as a Really Heavy Thing                     
Frank Gambale         Yummy Yummy                                       
Frank Gambale         Out of the Loop                                   
Frank Gambale         Suck on This                                      
Frank Gambale         Pork Soda                                         
Frank Gambale         Sailing the Seas of Cheese                        
Frank Gambale         Flying in a Blue Dream                            
Frank Gambale         Black Swans and Wormhole Wizards                  
Frank Gambale         Somewhere in Time                                 
Frank Gambale         Big Red Car                                       
Frank Zappa           Killers                                           
Frank Zappa           Powerslave                                        
Frank Zappa           Surfing with the Alien                            
Frank Zappa           Heavy as a Really Heavy Thing                     
Frank Zappa           Yummy Yummy                                       
Frank Zappa           Out of the Loop                                   
Frank Zappa           Suck on This                                      
Frank Zappa           Pork Soda                                         
Frank Zappa           Sailing the Seas of Cheese                        
Frank Zappa           Flying in a Blue Dream                            
Frank Zappa           Black Swans and Wormhole Wizards                  
Frank Zappa           Somewhere in Time                                 
Frank Zappa           Big Red Car                                       
Ian Moss              Killers                                           
Ian Moss              Powerslave                                        
Ian Moss              Surfing with the Alien                            
Ian Moss              Heavy as a Really Heavy Thing                     
Ian Moss              Yummy Yummy                                       
Ian Moss              Out of the Loop                                   
Ian Moss              Suck on This                                      
Ian Moss              Pork Soda                                         
Ian Moss              Sailing the Seas of Cheese                        
Ian Moss              Flying in a Blue Dream                            
Ian Moss              Black Swans and Wormhole Wizards                  
Ian Moss              Somewhere in Time                                 
Ian Moss              Big Red Car                                       
Iron Maiden           Killers                                           
Iron Maiden           Powerslave                                        
Iron Maiden           Surfing with the Alien                            
Iron Maiden           Heavy as a Really Heavy Thing                     
Iron Maiden           Yummy Yummy                                       
Iron Maiden           Out of the Loop                                   
Iron Maiden           Suck on This                                      
Iron Maiden           Pork Soda                                         
Iron Maiden           Sailing the Seas of Cheese                        
Iron Maiden           Flying in a Blue Dream                            
Iron Maiden           Black Swans and Wormhole Wizards                  
Iron Maiden           Somewhere in Time                                 
Iron Maiden           Big Red Car                                       
Joe Satriani          Killers                                           
Joe Satriani          Powerslave                                        
Joe Satriani          Surfing with the Alien                            
Joe Satriani          Heavy as a Really Heavy Thing                     
Joe Satriani          Yummy Yummy                                       
Joe Satriani          Out of the Loop                                   
Joe Satriani          Suck on This                                      
Joe Satriani          Pork Soda                                         
Joe Satriani          Sailing the Seas of Cheese                        
Joe Satriani          Flying in a Blue Dream                            
Joe Satriani          Black Swans and Wormhole Wizards                  
Joe Satriani          Somewhere in Time                                 
Joe Satriani          Big Red Car                                       
Magnum                Killers                                           
Magnum                Powerslave                                        
Magnum                Surfing with the Alien                            
Magnum                Heavy as a Really Heavy Thing                     
Magnum                Yummy Yummy                                       
Magnum                Out of the Loop                                   
Magnum                Suck on This                                      
Magnum                Pork Soda                                         
Magnum                Sailing the Seas of Cheese                        
Magnum                Flying in a Blue Dream                            
Magnum                Black Swans and Wormhole Wizards                  
Magnum                Somewhere in Time                                 
Magnum                Big Red Car                                       
Mr Percival           Killers                                           
Mr Percival           Powerslave                                        
Mr Percival           Surfing with the Alien                            
Mr Percival           Heavy as a Really Heavy Thing                     
Mr Percival           Yummy Yummy                                       
Mr Percival           Out of the Loop                                   
Mr Percival           Suck on This                                      
Mr Percival           Pork Soda                                         
Mr Percival           Sailing the Seas of Cheese                        
Mr Percival           Flying in a Blue Dream                            
Mr Percival           Black Swans and Wormhole Wizards                  
Mr Percival           Somewhere in Time                                 
Mr Percival           Big Red Car                                       
Noiseworks            Killers                                           
Noiseworks            Powerslave                                        
Noiseworks            Surfing with the Alien                            
Noiseworks            Heavy as a Really Heavy Thing                     
Noiseworks            Yummy Yummy                                       
Noiseworks            Out of the Loop                                   
Noiseworks            Suck on This                                      
Noiseworks            Pork Soda                                         
Noiseworks            Sailing the Seas of Cheese                        
Noiseworks            Flying in a Blue Dream                            
Noiseworks            Black Swans and Wormhole Wizards                  
Noiseworks            Somewhere in Time                                 
Noiseworks            Big Red Car                                       
Pat Metheny           Killers                                           
Pat Metheny           Powerslave                                        
Pat Metheny           Surfing with the Alien                            
Pat Metheny           Heavy as a Really Heavy Thing                     
Pat Metheny           Yummy Yummy                                       
Pat Metheny           Out of the Loop                                   
Pat Metheny           Suck on This                                      
Pat Metheny           Pork Soda                                         
Pat Metheny           Sailing the Seas of Cheese                        
Pat Metheny           Flying in a Blue Dream                            
Pat Metheny           Black Swans and Wormhole Wizards                  
Pat Metheny           Somewhere in Time                                 
Pat Metheny           Big Red Car                                       
Primus                Killers                                           
Primus                Powerslave                                        
Primus                Surfing with the Alien                            
Primus                Heavy as a Really Heavy Thing                     
Primus                Yummy Yummy                                       
Primus                Out of the Loop                                   
Primus                Suck on This                                      
Primus                Pork Soda                                         
Primus                Sailing the Seas of Cheese                        
Primus                Flying in a Blue Dream                            
Primus                Black Swans and Wormhole Wizards                  
Primus                Somewhere in Time                                 
Primus                Big Red Car                                       
Slayer                Killers                                           
Slayer                Powerslave                                        
Slayer                Surfing with the Alien                            
Slayer                Heavy as a Really Heavy Thing                     
Slayer                Yummy Yummy                                       
Slayer                Out of the Loop                                   
Slayer                Suck on This                                      
Slayer                Pork Soda                                         
Slayer                Sailing the Seas of Cheese                        
Slayer                Flying in a Blue Dream                            
Slayer                Black Swans and Wormhole Wizards                  
Slayer                Somewhere in Time                                 
Slayer                Big Red Car                                       
Steve Vai             Killers                                           
Steve Vai             Powerslave                                        
Steve Vai             Surfing with the Alien                            
Steve Vai             Heavy as a Really Heavy Thing                     
Steve Vai             Yummy Yummy                                       
Steve Vai             Out of the Loop                                   
Steve Vai             Suck on This                                      
Steve Vai             Pork Soda                                         
Steve Vai             Sailing the Seas of Cheese                        
Steve Vai             Flying in a Blue Dream                            
Steve Vai             Black Swans and Wormhole Wizards                  
Steve Vai             Somewhere in Time                                 
Steve Vai             Big Red Car                                       
Strapping Young Lad   Killers                                           
Strapping Young Lad   Powerslave                                        
Strapping Young Lad   Surfing with the Alien                            
Strapping Young Lad   Heavy as a Really Heavy Thing                     
Strapping Young Lad   Yummy Yummy                                       
Strapping Young Lad   Out of the Loop                                   
Strapping Young Lad   Suck on This                                      
Strapping Young Lad   Pork Soda                                         
Strapping Young Lad   Sailing the Seas of Cheese                        
Strapping Young Lad   Flying in a Blue Dream                            
Strapping Young Lad   Black Swans and Wormhole Wizards                  
Strapping Young Lad   Somewhere in Time                                 
Strapping Young Lad   Big Red Car                                       
The Tea Party         Killers                                           
The Tea Party         Powerslave                                        
The Tea Party         Surfing with the Alien                            
The Tea Party         Heavy as a Really Heavy Thing                     
The Tea Party         Yummy Yummy                                       
The Tea Party         Out of the Loop                                   
The Tea Party         Suck on This                                      
The Tea Party         Pork Soda                                         
The Tea Party         Sailing the Seas of Cheese                        
The Tea Party         Flying in a Blue Dream                            
The Tea Party         Black Swans and Wormhole Wizards                  
The Tea Party         Somewhere in Time                                 
The Tea Party         Big Red Car                                       
The Wiggles           Killers                                           
The Wiggles           Powerslave                                        
The Wiggles           Surfing with the Alien                            
The Wiggles           Heavy as a Really Heavy Thing                     
The Wiggles           Yummy Yummy                                       
The Wiggles           Out of the Loop                                   
The Wiggles           Suck on This                                      
The Wiggles           Pork Soda                                         
The Wiggles           Sailing the Seas of Cheese                        
The Wiggles           Flying in a Blue Dream                            
The Wiggles           Black Swans and Wormhole Wizards                  
The Wiggles           Somewhere in Time                                 
The Wiggles           Big Red Car                                       
Wayne Jury            Killers                                           
Wayne Jury            Powerslave                                        
Wayne Jury            Surfing with the Alien                            
Wayne Jury            Heavy as a Really Heavy Thing                     
Wayne Jury            Yummy Yummy                                       
Wayne Jury            Out of the Loop                                   
Wayne Jury            Suck on This                                      
Wayne Jury            Pork Soda                                         
Wayne Jury            Sailing the Seas of Cheese                        
Wayne Jury            Flying in a Blue Dream                            
Wayne Jury            Black Swans and Wormhole Wizards                  
Wayne Jury            Somewhere in Time                                 
Wayne Jury            Big Red Car 

Men hvis en WHERE sætning tilføjes, opfører krydssammenføjningen sig som en indre sammenføjning.

Andre jointyper

SQL-standarden inkluderer også RIGHT OUTER JOIN og FULL OUTER JOIN SQLite understøtter dog ikke disse jointyper.


  1. Sådan opsætter og logger du ind som root-bruger i MySQL

  2. MySQL Opdel kommasepareret streng i Temp-tabel

  3. Beregning af medianen med en dynamisk markør

  4. Oracle VÆLG TOP 10 poster