Koppla ihop tabeller | |
![]() | ![]() |
![]() | |
I Access kopplade vi ihop tabeller till en relationsdatabas. Nu skall vi göra samma sak med SQL, så att vi till exempel kan söka fram vilka varor en viss kund har köpt. Titta på den här SQL-satsen: SELECT Kunder.*, Varor.Vara, Varor.Pris FROM Kunder, Leverans, Varor WHERE Leverans.KundID=Kunder.KundID AND Leverans.VaruID=Varor.VaruID AND Kunder.Namn LIKE '" & varKund & "' Om vi läser det här från höger till vänster betyder det: Där tabellen Kunders kolumn Namn har det som står i variabeln varKund och där tabellen Leverans' kolumn VaruID är lika med tabellen Varors kolumn VaruID och där tabellen Leverans' kolumn KundID är lika med tabellen Kunders kolumn KundID från tabellerna Kunder, Leverans och Varor välj ut tabellen Varors kolumn Pris, tabellen Varors kolumn Vara och alla kolumner i tabellen Kunder. Vi gör alltså en relationskoppling mellan tabellernas gemensamma kolumner Leverans.KundID=Kunder.KundID och Leverans.VaruID=Varor.VaruID Vi byter ut den SQL-sats som finns i första If-satsen, där vi anger kundens namn i textboxen, mot den här med relationskoppling. Skriv ett kundnamn i fliken Sök kund och vi får se kolumner från de båda tabellerna Kunder och Varor i vårt DataGrid. Vi kan bygga ut SQL-satsen ytterligare. Antag att vi vill sortera varorna efter deras pris. Lägg då till ORDER BY Varor.Pris sist i SQL-satsen, som nu har blivit rätt lång. SELECT Kunder.*, Varor.Vara, Varor.Pris FROM Kunder, Leverans, Varor WHERE Leverans.KundID=Kunder.KundID AND Leverans.VaruID=Varor.VaruID AND Kunder.Namn LIKE '" & varKund & "' ORDER BY Varor.Pris Om vi tar bort If-satsen och den delen i SQL-satsen med variabeln, och sorterar efter kundens Namn, kan vi få en lista på alla varor som alla har köpt. SELECT Kunder.*, Varor.Vara, Varor.Pris FROM Kunder, Leverans, Varor WHERE Leverans.KundID=Kunder.KundID AND Leverans.VaruID=Varor.VaruID ORDER BY Kunder.Namn | |
![]() | ![]() |
![]() | |
SupportData.Net |