Iekšējā pievienošanās un ārējā pievienošanās


SQL, a pievienoties tiek izmantots, lai salīdzinātu un apvienotu - burtiski pievienotos - un atgrieztu īpašas datu rindas no divām vai vairākām tabulām datu bāzē. An iekšējā pievienošanās atrod un atgriež atbilstošus datus no tabulām, bet ārējais savienojums atrod un atgriež atbilstošos datus un daži atšķirīgi dati no tabulām.

ziņot par šo sludinājumu

Iekšējais pievienošanās

Iekšējais savienojums koncentrējas uz divu tabulu kopīgumu. Izmantojot iekšējo savienojumu, starp divām (vai vairākām) salīdzināmajām tabulām ir jābūt vismaz dažiem atbilstošajiem datiem. Iekšējā savienojumā tiek meklētas tabulas, lai iegūtu atbilstošus vai pārklājošos datus. Atrodot to, iekšējais savienojums apvieno un atdod informāciju vienā jaunā tabulā.

Iekšējās pievienošanās piemērs

Apsvērsim kopēju divu tabulu scenāriju: produktu cenas un daudzumi. Abās tabulās vispārīgā informācija ir produkta nosaukums, tātad loģiskā kolonna ir tabulu pievienošanai ieslēgts. Ir daži produkti, kas abās tabulās ir raksturīgi; citi ir raksturīgi tikai vienam no galdiem, un otrai tabulai nav atbilstības.

Iekšēja pievienošanās Izstrādājumi atgriež informāciju par tikai tiem produktiem, kas ir izplatīti abās tabulās.

Ārējais pievienoties

Ārējais savienojums atgriež ierakstu (vai rindu) kopu, kurā ir iekļauts tas, ko atgriezīs iekšējais savienojums, bet iekļautas arī citas rindas, kurām attiecīgajā tabulā nav atrasta atbilstoša atbilstība.

Pastāv trīs ārējo savienojumu veidi:

  • Kreisais ārējais pievienošanās (vai kreisais pievienošanās)
  • Labais ārējais pievienošanās (vai labais pievienošanās)
  • Pilnīga ārējā pievienošanās (vai pilnīga pievienošanās)

Katrs no šiem ārējiem savienojumiem attiecas uz datu daļu, kas tiek salīdzināta, apvienota un atgriezta. Dažreiz šajā procesā tiks izveidoti nulles, jo daži dati tiek koplietoti, bet citi nav.

Kreisais ārējais savienojums

Kreisais ārējais savienojums parādīs visus datus 1. tabulā un visus koplietotos datus (tātad Vennas diagrammas piemēra iekšējo daļu), bet tikai atbilstošos datus no 2. tabulas, kas ir labā savienojums.

Kreisais pievienošanās piemērs

Mūsu datu bāzes piemērā kreisajā pusē ir divi produkti - apelsīni un tomāti (Cenas tabula), kam nav atbilstoša ieraksta labajā pusē (Daudzumu tabula). Kreisajā savienojumā šīs rindas tiek iekļautas rezultātu komplektā ar NULL kolonnā Daudzums. Citas rezultāta rindas ir tādas pašas kā iekšējā savienojuma.

Labais ārējais pievienošanās

Labais ārējais savienojums atgriež 2. tabulas datus un visus koplietotos datus, bet tikai atbilstošos datus no 1. tabulas, kas ir kreisās puses savienojums.

Labās pievienošanās piemērs

Līdzīgi kā kreisās pievienošanās piemērs, labās ārējās savienojuma izvade ietver visas iekšējās savienojuma rindas un divas rindas - brokoļus un skvošu - no “labās” (Daudzumi tabula), kuras kreisajā pusē nav atbilstošu ierakstu.

Pilns ārējais pievienošanās

Pilnīga ārējā pievienošanās vai pilnīga pievienošanās, kas ir ko atbalsta populārā MySQL datu bāzes pārvaldības sistēma, apvieno un atdod visiem datus no divām vai vairākām tabulām neatkarīgi no tā, vai ir kopīga informācija. Iedomājieties pilnīgu pievienošanos kā visas norādītās informācijas kopēšanu, bet tikai vienā tabulā, nevis vairākās tabulās. Ja trūkst atbilstošu datu, tiks izveidoti nulles.

Šie ir tikai pamati, bet daudzas lietas var izdarīt arī ar pievienošanos. Ir pat pievienošanās, kas var izslēgt citas pievienošanās!

Video, kurā izskaidroti iekšējie un ārējie savienojumi

Šis video izskaidro atšķirību starp dažādiem savienojumiem. Tas ir sagatavots, lai sāktu tajā vietā, kur sākas diskusija par pievienošanos.

Atsauces

  • Atšķirība starp iekšējo un ārējo savienojumu - Steku pārpilde
  • SQL iekšējā pievienošanās - Quackit
  • SQL ārējā pievienošanās - Quackit
  • Iekšējo savienojumu izmantošana - Microsoft SQL Server
  • Ārējo savienojumu izmantošana - Microsoft SQL Server
  • SQL savienojumu vizuāla reprezentācija - CodeProject
  • Wikipedia: Pievienoties (SQL)