SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite - JOIN изявления

Инструкция за присъединяване се използва за запитване на данни в множество свързани таблици.

Сега, когато създадохме връзка между две таблици, вече можем да използваме и двете таблици в рамките на един SELECT изявление за връщане на свързани данни. Можем да направим това с помощта на JOIN изявление.

Ще направим заявка за нашите таблици, използвайки трите основни типа на присъединяване:

  • Вътрешно присъединяване
  • Ляво външно съединение
  • Кръстосано присъединяване

Вътрешното съединение

Вътрешното съединение е присъединяване, при което стойностите в колоните, които се обединяват, се сравняват с помощта на оператор за сравнение. В стандарта SQL вътрешните съединения могат да бъдат посочени или в FROM или WHERE клауза.

Например, можем да изпълним заявка, за да извлечем списък с всички изпълнители и техните албуми:

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

Резултат:

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   

Може да сте забелязали, че горните колони не са достатъчно широки за нашите нови данни (някои от данните се съкращават). За да покажем всички данни, ще трябва да увеличим отново размерите на колоните.

Нещо като .width 20 50 би трябвало да е достатъчно за сега.

Можем също да използваме WHERE клауза, за да стесните резултатите до конкретен изпълнител:

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

Въпреки това, WHERE можеше лесно да бъде AND за да разширите ON клауза:

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

Лявото външно съединение

Външно свързване връща всички редове от поне една от таблиците или изгледите, споменати в FROM клауза, стига тези редове да отговарят на WHERE или HAVING условия за търсене.

С ляво външно присъединяване, всички редове се извличат от лявата таблица.

Така че в следващия пример всички редове от Изпълнители таблицата се връщат, независимо дали има свързан запис в Албуми таблица.

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

Резултат:

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                                       

Кръстосаното присъединяване

Кръстосано присъединяване (което няма WHERE клауза) води до декартовото произведение на таблиците, участващи в присъединяването. Следователно размерът на резултантния набор е броят на редовете в първата таблица, умножен по броя на редовете във втората таблица.

Внимавайте с кръстосаното съединение. Може да върне изключително големи набори от резултати!

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

Резултат (вероятно ще трябва да превъртите):

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 

Въпреки това, ако WHERE се добавя клауза, кръстосаното съединение се държи като вътрешно съединение.

Други типове присъединяване

SQL стандартът включва също RIGHT OUTER JOIN и FULL OUTER JOIN , обаче, SQLite не поддържа тези типове присъединяване.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android - опитайте се да отворите отново вече затворен обект:SQLiteQuery с помощта на loaderManager

  2. грешка при вмъкване на android.database.sqlite.sqliteconstraintexception код за грешка 19 ограничение неуспешно

  3. Как да извлечете два Json отговор Json обект и масив

  4. Как работи SQLite Nullif().

  5. SQLite Освен