Kreisais vai labais Pievienojieties
Darījumos ar SQL pievienošanās ir vispārpieņemts nosaukums, kas ik pa brīdim parādīsies. Apvienošanās klauzula palīdz ierakstu apvienošanā no dažādām datu kopas tabulām. Apvienošanās faktiski rada tabulu, kuru var izmantot tādu, kāda tā ir, vai arī izrullēt kopā ar citiem. Tāpēc ir ieteicams izprast šos savienojumus un atšķirības starp tiem, lai zinātu konkrēto savienojumu un to, vai īpašos gadījumos būtu jāņem labo vai kreiso pusi..
Lai labāk izprastu savienojumus un to atšķirības, ir svarīgi izprast pieejamo savienojumu veidus. Parasti ir trīs savienojumu veidi. Šie savienojumi ietver iekšējo savienojumu, šķērssavienojumu un ārējo savienojumu. Iekšējais savienojums parasti salīdzina tabulas, un rezultāts tiks parādīts vai atgriezts tikai tad, ja tiks atrasta atbilstība. Iekšējā savienojuma galvenā funkcija ir samazināt rezultātu kopas.
Krusta savienojumi, no otras puses, salīdzina divas tabulas un dod atdevi no katras iespējamās kombinācijas, kas nāk no abu tabulu rindām. No šīs pievienošanās tiek gaidīti neskaitāmi rezultāti, un lielākajai daļai no tiem varbūt pat nav nozīmes. Tāpēc šī pievienošanās jāizmanto piesardzīgi.
Ārējā savienojumā tiek salīdzinātas tabulas un tiek atgriezti dati, kad ir pieejama atbilstība. Tāpat kā redzams iekšējā savienojumā, ārējais savienojums dublē rindas dotajā tabulā, ja tiek parādīti atbilstošie ieraksti. Ārējo savienojumu rezultāti parasti ir lielāki, un tādējādi datu kopas ir lielas, jo pats komplekts nav noņemts no kopas.
Kreisais savienojums attiecas uz visu 1. tabulas ierakstu saglabāšanu neatkarīgi no rezultāta un NULL vērtību ievietošanu, ja otrās tabulas vērtības nesakrīt. Labais savienojums, no otras puses, nozīmē visu 2. tabulas ierakstu saglabāšanu neatkarīgi no tā, kāds ir rezultāts, un NULL vērtību izmantošanu, ja rezultāti nesakrīt ar 1. tabulas rezultātiem..
Tāpēc kreisais ārējais savienojums saglabā visas rindas, kas atrodas tabulā “pa kreisi”, neatkarīgi no tā, vai “labajā” tabulā ir tai atbilstoša rinda. Tāpēc kreisā tabula attiecas uz tabulu, kas ir pirmā kopīgajā paziņojumā. Tam vajadzētu parādīties pa kreisi no atslēgvārda “pievienoties”, kas parādās uz galda. Kad kreisā ārējā savienošana ir pabeigta, visas rindas no kreisās puses ir jāatdod. Neatbilstošās kolonnas tabulā tiks aizpildītas ar NULL, ja vien nav atbilstības.
Ir svarīgi atzīmēt, ka, strādājot ar šīm divām savienojumiem, visas rindas no tabulas kreisās puses ir parādītas tabulā kreisajā ārējā savienojumā. Rezultāti tiek parādīti neatkarīgi no tā, vai labajā tabulā ir atbilstošas kolonnas. Labajā ārējā savienojumā tiek parādītas visas rindas no labās, un tas notiek neatkarīgi no tā, vai tabulas kreisajā pusē ir atbilstošas kolonnas.
Izvēlei, vai iet pa kreiso ārējo savienojumu vai labo ārējo savienojumu, nav nozīmes, jo tiek parādīti vieni un tie paši rezultāti. Funkcionalitāte, ko attēlo labās puses ārējais savienojums, ir tāda pati kā kreisā ārējā savienojuma. Vienkārši mainot secību, kādā tabulas parādās SQL paziņojumā, jūs varat sagaidīt līdzīgus rezultātus neatkarīgi no izmantotā savienojuma.
Kopsavilkums
Savienojumi notiek trīs galvenajās grupās - iekšējais savienojums, šķērso savienojums un ārējais savienojums
Kreisajā ārējā savienojumā tiek parādītas visas rindas no tabulas kreisās puses
Labais savienojums parāda visas rindas no tabulas labās puses
SQL secības maiņa var novērst gan labo, gan kreiso ārējo savienojumu izmantošanu un tā vietā izmantot tikai vienu.