2011-10-14, 23:37
#37
Citat:
LEFT JOIN vs RIGHT JOIN vs INNER JOIN syftar på hur datat från de bägge tabellerna joinas ihop, inte "i vilken ordning de är" eller hur de är uppbyggda.
Ursprungligen postat av SorXisteN
Tack! Det hjälper verkligen när ni förklarar 
Jag har en fråga som jag ställt tidigare som kan är lite ja..smått dum :P men iaf, det finns som sagt olika typer av JOINS, t.ex. LEFT JOIN från den vänstra tabellen osv. Men hur vet man i vilken ordning (vänster -> höger) som tabellerna är? Det måste väl sitta i uppbyggnaden i tabellen, bestämmer man då nån viss "position" på den? Hänger inte riktigt med där

Jag har en fråga som jag ställt tidigare som kan är lite ja..smått dum :P men iaf, det finns som sagt olika typer av JOINS, t.ex. LEFT JOIN från den vänstra tabellen osv. Men hur vet man i vilken ordning (vänster -> höger) som tabellerna är? Det måste väl sitta i uppbyggnaden i tabellen, bestämmer man då nån viss "position" på den? Hänger inte riktigt med där
Wikipedialänken Proton postade beskriver det hela mycket bra med fina exempel, men för att recappa lite:
Citat:
A och B syftar alltså på:
The result of a left outer join (or simply left join) for table A and B always contains all records of the "left" table (A), even if the join-condition does not find any matching record in the "right" table (B). This means that if the ON clause matches 0 (zero) records in B, the join will still return a row in the result—but with NULL in each column from B. This means that a left outer join returns all the values from the left table, plus matched values from the right table (or NULL in case of no matching join predicate).
SELECT A.*, B.*
FROM A LEFT JOIN B ON A.id = B.id
Motsvarande gäller för RIGHT JOIN, där all data från den högra tabellen (dvs den tabell man angett till höger om nyckelordet JOIN) kommer med i resultatet, medan nullvärden kan förekomma för de rader där predikatet inte matchar någon post i den vänstra tabellen.
Med INNER JOIN eliminerar du nullvärden ur resultatet, det måste finnas en matchande rad i den joinade tabellen.