..


Rėmėjų nuorodos

Iš INNER JOIN arba gauti dokumentai priešinga nesutampa

Straipsnį parašė Max Bossi

Kas žino, kokių žinių SQL yra JOIN. Mūsų vadovai ir kiti dirbiniai mes paaiškino, kaip prisijungti ir kaip jūs galite kurti ryšius tarp skirtingų lentelių duomenų bazėje.

Dažniausiai reikalavimas įvykdomas priemonė prisijungti prie susirasti rungtynės tarp dviejų lentelių, tokiu atveju gelbsti INNER JOIN sąlyga, kuri tiksliai suranda ir grąžina srityse, kurios atitinka susirašinėjimas siekė per dvi ar daugiau lentelių, dalyvaujančių į JOIN.

Daug mažiau intuityvi priešingai, kad reikia nustatyti sritis, kad neturite rungtynės JOIN.

Paimkime pavyzdžiu.
Tarkime, jūs norite valdyti iš e-komercijos duomenų bazė susideda tik iš dviejų lentelių:

  • klientų (kuriuose pagrindinius duomenis apie kliento)
  • užsakymus (su užsakymų pateikti klientams)
Dabar tarkime, kad norite išgauti du skirtingus sąrašus klientams: 1) klientų, kurie jau pateikė užsakymą, 2) vartotojų, kurie dar nėra balsiai sąrašą.

Norėdami patenkinti pirmojo reikalavimo, žinoma, yra gana paprasta:

 



 PASIRINKITE CUSTOMER.FIRST, CUSTOMER.LAST







 Iš klientų







 INNER JOIN Užsakymai







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
ir kol kas jokių problemų.

Bet kaip mes galime padaryti, siekiant pakeisti rezultatą? Na ... Pirma, nenaudokite INNER JOIN, bet LEFT JOIN rasti visą rungtynių, o ne dalinis, tačiau jeigu atsiranda kairėje stalo yra grąžinami vistiek.
Be to, mes atrodys (naudojant WHERE) įrašai, trūksta (ty ne rasti pranešime), tada nustatyti kaip NULL (į SQL NULL yra apibrėžiamas kaip "ypatingos vertės" rūšis, kuri identifikuoja vertės nėra ..)

Pažiūrėkime kodas:

 



 PASIRINKITE CUSTOMER.FIRST, CUSTOMER.LAST







 Iš klientų







 LEFT JOIN Užsakymai







 ON = clienti.id ordini.id_cliente







 KUR YRA NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Rezultatas yra, tiesą sakant, vardų mūsų klientų, kurie niekada nepirko ir niekada nieko sąrašą.

Tos pačios kategorijos ...
E-mokymasis
MS Access (Advanced) MS Access (Advanced)
Sužinokite, kaip kurti ir valdyti duomenų bazes greitai ir lengvai. Nuo 29 €.
MySQL (kurso) MySQL (kurso)
Valdymas atviro kodo duomenų bazės. Nuo 39 €.
SQL ir duomenų bazės (kurso) SQL ir duomenų bazės (kurso)
Kurkite ir tvarkykite reliacinėse duomenų bazėse. Nuo 39 €.
Rėmėjų nuorodos