MySQL JOIN: aprašymas, komandos ir rekomendacijų naudojimas

Interneto išteklių duomenų bazių kūrimaspraktiškai nesiskiria nuo standartinių duomenų bazių, sukurtų MS SQL SERVER. Paprastai tokiems ištekliams naudojama "My SQL" kalba, nors ji taip pat gali būti naudojama kuriant standartinius programinius produktus vietiniam naudojimui. Bet šis straipsnis nėra apie tai.

mysql prisijungti

Dažnai dirbdami su duomenų bazėmis kiekvienojekalbos yra užduotis rinkti duomenis išvedimui įvairiose ataskaitose, grafikose ir kt. Paprastai, įgyvendinant tokias užduotis, būtina naudoti ne vieną, o kelias lenteles, jas sujungti į vieną užklausą, o tai žymiai apsunkina jo konstrukciją. Tuo pačiu metu būtina atsižvelgti į tai, kaip duomenys bus išvedami, kaip stalai bus "ištraukti" ir koks rezultatas bus priimtiniausias programuotojui. Norėdami išspręsti tokias problemas, viena iš standartinių "MySQL" kalbos konstrukcijų yra "Join".

Sąvoka "prisijungti"

Duomenų bazių kūrimo kalbos, nesvarbu, ką tiksliaitai yra kalba, kaip pagrindas naudojami standartiniai anglų kalbos žodynų žodžiai (todėl, jei žinote anglų kalbą, jums bus daug lengviau dirbti su lentelėmis). Siekiant įgyvendinti lentelių ryšį imtyje, naudojamas tas pats žodis - prisijungti. Duomenų bazėje naudojama programavimo kalba My SQL. Šio oficialaus žodžio vertimas yra toks pat kaip ir pačioje kalboje - "suvienijimas".

Vertimas žodžiu "MySQL-Join", irbet kuris iš jų bus tas pats. Jei iššifruoti statybos paskirtį, ty savo darbo metmenis, mes gauname tokias reikšmes: dizainas leis surinkti reikiamus laukus iš skirtingų lentelių ar lizdinė užklausas į vieną mėginį.

Asociacijos struktūrų tipai

mysql prisijungti

Jei programuotojas turi rinkti pavyzdį iškelios lentelės ir jis žino, kokie pagrindiniai jų laukai ir kokie duomenys reikalingi ataskaitai, tuomet jūs galite naudoti vieną iš pagrindinių sąjungos dizaino norint pasiekti norimą rezultatą. Pagrindinės konstrukcijos (stalų sujungimui) yra keturios:

  1. Vidinis prisijungimas.
  2. Kryžius prisijungti
  3. Kairysis prisijungti.
  4. Teisingai prisijungti

Priklausomai nuo užduoties, kiekvienas standartinis dizainas duos skirtingus rezultatus, todėl per trumpą laiką galėsite gauti skirtingų parametrų ataskaitas.

Lentelių kūrimas ir užpildymas vėlesniam naudojimui

Pavyzdžiui, prieš pradėdami, apsvarstykitemechanizmai, skirti dirbti su duomenų federacijomis, verta parengti keletą lentelių, su kuriomis ir toliau dirbame. Tai padės vizualiai parodyti visus operatorių principus, be to, taip pradedantiesiems lengviau išmokti visus programavimo stalų pagrindus.

Pirmoji lentelė apibūdins kai kuriuos dalykus, kuriuos asmuo nuolat gyvena per visą savo gyvenimą.

mysql prisijungti

Antroje lentelėje apibūdinome keletą objektų savybių iš pirmosios lentelės, kad galėtume dirbti su jais ateityje.

palikti prisijungti prie mysql

Apskritai pakanka dviejų lentelių, parodančių jų darbą pavyzdžiu. Dabar galite pradėti apsvarstyti mūsų dizainą.

"Inner Join" naudojimas

Naudodamiesi "MySQL" konstrukcija - prisijungti prie "Ineer"verta apsvarstyti kai kurias jo savybes. Ši konstrukcija leidžia pasirinkti iš abiejų lentelių tik tuos įrašus, kurie yra tiek pirmojoje, tiek antrajame lentelėse. Kaip tai veikia? Pirmoje lentelėje mes turime pagrindinį raktą - ID, kuris parodo lentelėje įrašų eilės numerį.

Kuriant antrąją lentelę, tas pats raktasNaudojamas kaip serijos numeris, pavyzdyje galima pamatyti paveikslėlyje. Kai pasirenkate duomenis, "Select" operatorius nustato tik tuos įrašus, kurių eilės numeriai yra vienodi, taigi jie egzistuoja tiek pirmojoje, tiek antrajame lentelėse.

Naudojant konstrukciją,kokius duomenis reikia gauti. Dažniausiai klaida, ypač pradedančiųjų duomenų bazių programuotojui, yra netradicinis ir neteisingas "Inner Join" dizaino naudojimas. Pavyzdžiui, "MySQL Inner Join" galite apsvarstyti scenarijų, kuris grąžins mums iš anksčiau aprašytų ir užpildytų lentelių informaciją apie objektus ir jų savybes. Tačiau gali būti keli būdai naudoti struktūrą. Šiuo atžvilgiu mano SQL yra labai lanksti kalba. Taigi, galite apsvarstyti pavyzdžių, kaip naudoti "MySQL Inner Join".

Lentelių sujungimas nenurodant jokių parametrų. Tokiu atveju gauname tokio plano rezultatą:

mysql vidinis prisijungti

Jei mes nurodome naudodami "Utility" žodį Naudodami, taiBūtina atsižvelgti į pagrindinius lentelių įrašų raktus, radikaliai keisis pavyzdžio rezultatas. Tokiu atveju mes gauname pavyzdį, kuris grąžins tik tas eilutes, turinčias tuos pačius pagrindinius raktus.

mysql prisijungti prie pavyzdžių

Trečioji galimybė taip pat įmanomakai užklausoje žodis "įjungtas" naudojamas norint nurodyti laukus, su kuriais turėtų būti sujungtos lenteles. Šiuo atveju mėginys grąžins šiuos duomenis:

mysql prisijungti pasirinkite

Kairiojo prisijungimo naudojimo bruožai

Jei apsvarstysime dar vieną lentelių derinimo būdą, naudodami "MySQL-Join" konstrukciją, galite matyti išvesties duomenų skirtumus. Šis mechanizmas yra kairysis konstruktas.

Naudojimasis kairiuoju mygtuku Prisijungti statyti MySQL turi keletą funkcijų ir, kaip ir "Inner", reikia aiškiai suprasti gautą rezultatą.

Tokiu atveju pirmiausia bus parinkti visi įrašaiiš pirmos lentelės, ir toliau pridedami ant antros lentelės savybių. Tokiu atveju, jei yra įrašas, pavyzdžiui, "taburetė" pirmoje lentelėje, o antrasis stalo nėra savybės į jį, kairėje operatorius rodomas priešais atvykimo į NULL, kuris pasakoja programuotojas, kad šiuo klausimu ženklai nebūtų girdimas .

Naudodamiesi šia konstrukcija galėsite nustatyti, kurie laukai arba, pavyzdžiui, parduotuvėje esančios prekės neturi įtakos kainai, garantijos laikotarpiui ir pan.

Kairysis pavyzdys

Praktiškai atsižvelgti į operatoriųKairysis prisijungti prie MySQL naudoja anksčiau aprašytas lenteles. Pavyzdžiui, reikia pasirinkti visą prekių, esančių parduotuvėje, sąrašą ir patikrinti, kurie iš jų nėra pažymėti žymomis ar savybėmis. Šiuo atveju pavyzdyje bus rodomi visi produktai ekrane, o tiems, kurie neturi nuosavybės, bus rodomos tuščios vertės.

mysql atnaujinti prisijungti

Naudojimasis Where in Join construct

Kaip parametras prisijungimas gali apimti ne tik laukus, prie kurių norite prisijungti prie lentelių, bet taip pat gali apimti "clause" operatorių.

Pavyzdžiui, apsvarstykite scenarijų, kuris turėtųGrįžkite pas mus tik tuos įrašus, kurių nerodomas ženklas. Šiuo atveju, prisijungdami prie konstrukto, turite pridėti būklės ataskaitą ir nurodyti, ką tiksliai norite grąžinti kaip rezultatą.

Kai naudojate "MySQL Join - Where", turite aiškiai suprasti, kad bus rodomi tik tie įrašai, kuriems taikoma nurodyta sąlyga, ir atranka bus tokia:

mysql prisijungti kur

Tokie prašymai leidžia jums atrinktiKonkretūs duomenys, susiję su programuotojo parinkta būsena. Yra kelios tokios sąlygos, tačiau tuo pačiu metu nurodant duomenų atrankos parametrus iš jungtinių lentelių.

Naudodamiesi "Prisijungimas", galite keisti duomenis lentelėse

"Join the construct" iš tiesų yra universalus. Tai leidžia ne tik rinkti įvairius pavyzdžius, bet ir įtraukti į užklausas iš vienos ar kelių lentelių, į imtį įtraukti papildomas sąlygas. Projektą taip pat galima naudoti ir kitoms duomenų operacijoms. Taigi, Prisijungimas gali būti naudojamas duomenims keisti lentelėje. Paprasčiau paaiškinkite sąlygas lentelėje arba tokiais atvejais, jei norite atnaujinti duomenis keliose lentelėse tokioms pačioms sąlygoms.

Pavyzdžiui, apsvarstykite šią problemą. Pateikiamos trys lentelės, kuriose yra keletas duomenų. Turite keisti abiejuose lentelėse esančius duomenis naudodami vieną užklausą. Tiesiog išspręskite tokias užduotis, galite naudoti komandą "Prisijungti" komandą "Update". Pats prisijungimo tipo tipas, kaip ir gaunant duomenis, priklauso nuo rezultato, kurį programuotojas nori gauti.

Paimkime paprastą pavyzdį. Tos pačios sąlygos turite atnaujinti tą pačią užklausą. Tokios užklausos sukurtos siekiant optimizuoti darbą su duomenų baze. Kodėl parašyti skirtingas kiekvienos lentelės užklausas, jei galite atlikti visas manipuliacijas duomenimis viena užklausa? MySQL atnaujinimo pavyzdys Prisijunkite prie mūsų atveju:

mysql paliko prisijungti prie pavyzdžių

Pastatyti sudėtingas užklausas

Gana dažnai dirbant su duomenų bazeReikia kurti užklausas ne tik sujungus keletą lentelių, bet ir naudojant subkrecijas. Tokios užduotys yra gana sunkios suprasti pradedančiųjų duomenų bazių programuotoją. Sunku tai, kad jūs turite galvoti apie kiekvieną žingsnį, nustatyti, kurie duomenys, iš kurių stalo ar užklausos turite gauti, ir kaip jums reikės dirbti su jais ateityje.

Siekiant konkretesnio supratimo,(MySQL Join) sudėtingų užklausų pavyzdžiai. Jei esate pradedantysis ir tiesiog pradedate dirbti su duomenų bazėmis, tokie mokymai bus naudingi. Idealus variantas bus "MySQL Left" prisijungti prie pavyzdžių.

palikti prisijungti prie mysql

Šis prašymas grąžins mums 58 įrašųPardavimai, už kuriuos yra užpildyta arba esama pasirinktos datos lėšų likutis. Šiuo atveju tai yra dabartinė data. Taip pat imtyje buvo pridėta sąlyga, kad sutarties pavadinime turėtų būti simbolių "123". Ekrane rodomi duomenys (duomenys) bus rūšiuojami pagal užsakymo numerį.

Šiame pavyzdyje pateikiami visų mokėjimų, nurodant sutarties numerį, duomenys.

mysql prisijungti

Naudojant pakartotines užklausas

Kaip minėta anksčiau, dirbant su duomenų bazėmisgalite sujungti ne tik lenteles, bet ir stalą su užklausa. Šis dizainas naudojamas daugiausia siekiant paspartinti užklausą ir ją optimizuoti.

Pavyzdžiui, jei reikia, iš lentelės, kadturi kelis šimtus laukų ir, tarkim, tūkstantį įrašų, pasirinkite tik du laukelius, tuomet turėtumėte naudoti užklausą, kuri grąžins tik reikalingus laukus ir sujungs ją su pagrindiniu duomenų pavyzdžiu. Kaip MySQL Join Select pavyzdys, galite apsvarstyti tokio pobūdžio užklausą:

mysql prisijungti

Tai ne visi būdai naudoti standartąMySQL konstrukcijos, bet tik standartiniai. Kuris prisijungti prie statinio ir jo formų yra pats, pats programuotojas nusprendžia, tačiau verta prisiminti ir atsižvelgti į tai, koks rezultatas turėtų būti gautas vykdant užklausą.

Susijusios naujienos