sql >> Database >  >> RDS >> SQLite

SQLite - JOIN-instructies

Een join-instructie wordt gebruikt om gegevens in meerdere gerelateerde tabellen op te vragen.

Nu we een relatie tussen twee tabellen hebben gemaakt, kunnen we nu beide tabellen gebruiken binnen een enkele SELECT statement om gerelateerde gegevens te retourneren. We kunnen dit doen met een JOIN verklaring.

We zullen onze tabellen doorzoeken met behulp van de drie belangrijkste typen joins:

  • Innerlijke Join
  • Linker buitenste join
  • Kruis deelnemen

De innerlijke verbinding

Een inner join is een join waarin de waarden in de kolommen die worden samengevoegd worden vergeleken met behulp van een vergelijkingsoperator. In de SQL-standaard kunnen inner joins worden opgegeven in de FROM of WHERE clausule.

We kunnen bijvoorbeeld een zoekopdracht uitvoeren om een ​​lijst van alle artiesten en hun albums op te halen:

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

Resultaat:

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   

Het is u misschien opgevallen dat de bovenstaande kolommen niet breed genoeg zijn voor onze nieuwe gegevens (sommige gegevens worden afgekapt). Om alle gegevens weer te geven, moeten we de kolomgrootte opnieuw vergroten.

Iets als .width 20 50 zou voor nu voldoende moeten zijn.

We kunnen ook een WHERE . gebruiken clausule om de resultaten te beperken tot een bepaalde artiest:

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

Echter, de WHERE had zomaar een AND . kunnen zijn om de ON . uit te breiden clausule:

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

Een outer join retourneert alle rijen van ten minste een van de tabellen of views die worden genoemd in de FROM clausule, zolang die rijen voldoen aan een van de WHERE of HAVING zoekvoorwaarden.

Met een links outer join worden alle rijen opgehaald uit de linkertabel waarnaar wordt verwezen.

Dus in het volgende voorbeeld zijn alle rijen van de Artiesten tabel worden geretourneerd, ongeacht of er een gerelateerd record in de Albums . is tafel.

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

Resultaat:

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                                       

The Cross Join

Een cross join (die geen WHERE heeft) clausule) resulteert in het Cartesiaanse product van de tabellen die bij de join betrokken zijn. Daarom is de grootte van de resultatenset het aantal rijen in de eerste tabel vermenigvuldigd met het aantal rijen in de tweede tabel.

Wees voorzichtig met de kruisverbinding. Het kan extreem grote resultatensets opleveren!

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

Resultaat (je zult waarschijnlijk moeten scrollen):

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 

Als er echter een WHERE clausule is toegevoegd, gedraagt ​​de cross join zich als een inner join.

Andere soorten deelname

De SQL-standaard omvat ook RIGHT OUTER JOIN en FULL OUTER JOIN , SQLite ondersteunt deze join-typen echter niet.


  1. Gebruik FILE_NAME() om de logische bestandsnaam te retourneren voor een gegeven bestands-ID in SQL Server

  2. Is er een combinatie van LIKE en IN in SQL?

  3. Wat is het MySQL-equivalent van EXPLAIN ANALYZE van PostgreSQL?

  4. MySQL 8 instellen vanuit Binary Tarball