7 berichten aan het bekijken - 1 tot 7 (van in totaal 7)
  • Q:

    Bijdrager
    iPodder

    Verschil inner join, outer join

    Ik ben bezig met het opzetten van SQL statements voor mijn database.
    Ik weet wat het verschil is tussen inner join en outer join. Dit is duidelijk te lezen op deze site :
    http://www.databasedev.co.uk/query_joins.html

    Ik kan alleen nergens het verschil vinden tussen :

    LEFT INNER JOIN – LEFT OUTER JOIN
    RIGHT INNER JOIN – RIGHT OUTER JOIN

    Ze geven allebij hetzelfde resultaat nu bij mij. Maar ik heb nog niet zo veel data, alleen test data.
    Kan iemand aangeven of er verschil in zit ??? Alvast dank!!!


    Bijdrager
    klaus

    Bij een inner join zullen er geen resultaten getoond worden als er geen match is op de 2e rij. Bij een outer join is dit wel het geval.

    http://en.wikipedia.org/wiki/Join_(SQL)

    Left en Right heeft enkel te maken welke tabel er als eerste wordt aanzien, verder geen gevolgen.


    Bijdrager
    iPodder

    ja, maar daar staat niks over LEFT INNER JOIN of RIGHT INNER JOIN. Volgens mij hebben die dezelfde werking als respectivelijk LEFT OUTER JOIN en RIGHT OUTER JOIN.

    Nergens op een zit staan ook namelijk de twee varianten bij elkaar of tegenover elkaar.
    Vaak gebruik ik deze site: http://www.w3schools.com/sql/sql_join.asp. Daar staan niks over OUTER JOIN.:?


    Bijdrager
    klaus

    Left en right heeft niets van doen met outer en inner.

    A left outer join is very different from an inner join. Instead of limiting results to those in both tables, it limits results to those in the “left” table (A). This means that if the ON clause matches 0 records in B, a row in the result will still be returned—but with NULL values for each column from B.
    It returns all the values from left table + ( (matched values from right table) OR (null when the values from the right don’t match) ).

    De inner is overigens de default join.

    W3schools is ook niet de absolute leidraad over sql. Daar vind je ook de delete en update joins niet, en ook niet match against etc. Er ontbreekt wel wat info daar..


    Bijdrager
    iPodder
    ”klaus”

    Left en right heeft niets van doen met outer en inner.

    Met left of right geef je aan van welke tabel je de regels wel allemaal wil tonen. Blijkbaar kan je dit gebruiken bij INNER en OUTER allebei, dan zit er geen verschil meer in.

    Dank verder voor de info, ik gebruik wel OUTER, is ff wat overzichtelijker.


    Bijdrager
    iJoost

    Er is wel degelijk verschil, zoals klaus ook zegt.

    Een inner join geeft alleen de combinaties waarbij er in beide tabellen een row aanwezig is die aan de where (en de join) voldoet. Een outer join geeft ook die gevallen waarbij er in een van de tabellen geen row aanwezig is. Je krijgt dan voor de kolommen uit de andere tabel null values. De left of de right geeft daarbij aan in welke van de twee tabellen er wel een row moet zijn. Dan is er ook nog de full join waarbij het ontbreken van een row aan beide kanten is toegestaan. Left en right hebben dan ook alleen maar betekenis bij een outer join (niet bij een inner join).

    Let dus op als je een outer joing gebruikt. Niet alleen krijg je dan mogelijk meer rijen terug maar er kunnen ook null values in aanwezig zijn.


    Bijdrager
    iPodder
    ”iJoost”

    Left en right hebben dan ook alleen maar betekenis bij een outer join (niet bij een inner join).

    Ja, ik dacht ook dat Left en right alleen betekenis hebben bij een outer join, maar ze werken bij mij ook allebei bij de inner join.:?

7 berichten aan het bekijken - 1 tot 7 (van in totaal 7)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.