Vairāk
Kāda ir atšķirība starp INNER JOIN, LEFT JOIN, RIGHT JOIN un FULL JOIN?
Kāda ir atšķirība starp INNER JOIN
, LEFT JOIN
, RIGHT JOIN
un FULL JOIN
?
MySQL?
1586
3
Ļoti palīdzēs šī oriģinālā raksta izlasīšana par The Code Project: Visual Representation of SQL Joins.
Apskatiet arī šo ziņu: SQL SERVER - labāka veiktspēja - LEFT JOIN vai NOT IN?.
Atrodiet oriģinālu vietnē: Atšķirība starp JOIN un OUTER JOIN MySQL.
INNER JOIN iegūst visus ierakstus, kas ir kopīgi abām tabulām, pamatojoties uz norādīto ON klauzulu.
LEFT JOIN iegūst visus ierakstus no LEFT saistītās tabulas, bet, ja esat atlasījis dažus kolonnas no RIGHT tabulas, ja nav saistītu ierakstu, šajās kolonnās būs NULL.
PRAVAIS APSTIPRINĀJUMS ir līdzīgs iepriekš minētajam, bet iegūst visus ierakstus labajā tabulā.
PILNĪGAIS APSTIPRINĀJUMS iegūst visus ierakstus no abām tabulām un ieraksta NULL ailēs, ja pretējā tabulā nav saistītu ierakstu.
SQL ir pieejami dažādi savienošanas veidi:
INNER JOIN: atgriež rindas, ja abās tabulās ir sakritība.
LEFT JOIN: atgriež visas rindas no kreisās tabulas, pat ja labajā tabulā nav atbilstības.
PRAVAIS APVIENOJUMS: atgriež visas rindas no labās tabulas, pat ja kreisajā tabulā nav atbilstības.
PILNĪGS APSTIPRINĀJUMS: Tas apvieno gan kreisās, gan labās ārējās savienošanas rezultātus.
Apvienotajā tabulā būs visi ieraksti no abām tabulām, un trūkstošie sakritības gadījumi abās pusēs tiks aizpildīti ar NULL.
SELF JOIN: tiek izmantots, lai tabulu pievienotu sev, it kā tā būtu divas tabulas, SQL izteikumā uz laiku pārdēvējot vismaz vienu tabulu.
CARTESIAN JOIN: atgriež divu vai vairāku apvienoto tabulu ierakstu kopu Dekarta reizinājumu.
MĒS varam veikt katru no pirmajiem četriem savienojumiem Details :
Mums ir divas tabulas ar šādām vērtībām.
TabulaA
TabulaB
....................................................................
PIEVIENOŠANĀS JAUNIETIM
Piezīme :tas dod divu tabulu krustošanos, t. i., rindas, kas tām ir kopīgas tabulāA un tabulāB.
Sintakse
Piemērojiet to mūsu parauga tabulā :
Rezultāts būs
LEFT JOIN
Piezīme : tiks iegūtas visas atlasītās rindas tabulāA un visas kopīgās atlasītās rindas tabulāB.
Sintakse
Piemērojiet to mūsu parauga tabulā :
Rezultāts
PRAVA JOIN
Piezīme : tiks iegūtas visas atlasītās rindas tabulāB un visas kopīgās atlasītās rindas tabulāA.
Sintakse
Piemērojiet to mūsu parauga tabulā :
Rezultāts
PILNĪGI APVIENOT
Piezīme :Tas atgriezīs visas atlasītās vērtības no abām tabulām.
Sintakse
Piemērojiet to mūsu parauga tabulā :
Rezultāts
Interešs fakts
INNER savienojumiem secībai nav nozīmes.
(LEFT, RIGHT vai FULL) OUTER savienojumiem secībai ir nozīme.
Labāk pārbaudiet šo Saite, kas sniegs jums interesantu informāciju par savienošanas secību.