Du kan använda SQL JOIN-satser för att kombinera data från tre eller flera tabeller. SQL JOIN är extremt flexibel, och den kraftfulla funktionen kan användas för att kombinera data från flera tabeller. Låt oss ta en titt på SQL-förklaringarna som låter dig kombinera resultat från tre olika tabeller med hjälp av ett inre sammanfogning.
Inner Join Exempel
Ta till exempel tabeller som innehåller drivrutiner i ett bord och fordonets match-ups i det andra. Den inre föreningen uppstår där både fordonet och föraren är belägna i samma stad. Den inre föreningen väljer alla rader från båda tabellerna som innehåller en matchning mellan positionskolumner.
SQL-satsen nedan kombinerar data från tabellerna Drivers and Vehicles i de fall där föraren och fordonet befinner sig i samma stad:
SELECT efternamn, förnamn, tag FRÅN drivrutiner, fordon WHERE drivers.location = vehicles.location
Den här frågan ger följande resultat:
efternamn förnamn tagg -------- --------- --- Baker Roland H122JM Smythe Michael D824HA Smythe Michael P091YF Jacobs Abraham J291QR Jacobs Abraham L990MT
Nu, förläng det här exemplet för att inkludera ett tredje bord. Tänk dig att du bara skulle inkludera drivrutiner och fordon som finns på platser som är öppna i helgen. Du kan ta med ett tredje bord i ditt förfrågan genom att utöka JOIN-förklaringen enligt följande:
SELECT efternamn, förnamn, tagg, open_weekends FRÅN drivrutiner, fordon, platser WHERE drivers.location = vehicles.location OCH vehicles.location = locations.location OCH locations.open_weekends = 'Ja'
efternamn förnamn tagga open_weekends -------- --------- --- ------------- Baker Roland H122JM ja Jacobs Abraham J291QR ja Jacobs Abraham L990MT ja
Denna kraftfulla utvidgning till det grundläggande SQL JOIN-satsen gör att du kan kombinera data på ett komplicerat sätt. Förutom att kombinera tabeller med ett innerförband, kan du också använda denna teknik för att kombinera flera tabeller med hjälp av en yttre anslutning. Yttre föreningar inkluderar resultat som finns i ett bord men har inte en motsvarande match i det sammanfogade bordet.