..


Sponsorētās saites

No INNER JOIN vai iegūt ierakstus pretējā nesakrīt

Raksts raksta Max Bossi

Kas zina, kādas zināšanas par SQL JOIN. Mūsu rokasgrāmatas un citu rakstus mēs paskaidrots, kā JOIN un kā jūs varat izveidot attiecības starp dažādām tabulām datu bāzē.

Visbiežāk prasība ir izpildīta ar instrumenta JOIN, var atrast starp divām tabulām, un tādā gadījumā glābj INNER JOIN klauzulu, kas precīzi atrod un atgriež laukus, kas apmierina sarakstes centās divām vai vairākām iesaistītajām tabulām in JOIN.

Daudz mazāk intuitīvi pretēji ir nepieciešams, lai noteiktu jomas, kas nav spēles laikā JOIN.

Apskatīsim piemēru.
Pieņemsim, ka vēlaties, lai pārvaldītu datu bāzi e-komercijas sastāv tikai no divām tabulām:

  • klienti (satur kapteinis datus klientam)
  • rīkojumi (kas satur rīkojumi, klientiem)
Tagad pieņemsim, jūs vēlaties iegūt divus dažādus sarakstus ar klientiem: 1) klientu sarakstu, kas jau ir veicis pasūtījumu, 2) klientu sarakstu, kuri vēl nav nopircis neko.

Lai izpildītu pirmo nosacījumu, protams, ir pavisam vienkārša:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 No klientiem







 INNER JOIN Pasūtījumi







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
un līdz šim nekādu problēmu.

Bet kā mēs varam darīt, lai mainītu rezultātu? Nu ... Pirmkārt, neizmanto INNER JOIN, bet LEFT JOIN, lai atrastu spēles pilnībā, bet ne daļēju, tomēr gadījumā, ja rezultāti no kreisās tabulas tiek atgrieztas anyway.
Bez šīs mēs meklēsim (izmantojot WHERE) reģistri nav (ti, nevis atrast ziņojumā), tad noteikti kā NULL (jo SQL NULL ir definēta kā sava veida "īpašā vērtība", kas identificē bez vērtības ..)

Paskatīsimies kodu:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 No klientiem







 LEFT JOIN Pasūtījumi







 ON = clienti.id ordini.id_cliente







 KUR IS NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Rezultāts ir, faktiski, nosaukumu saraksts mūsu klientiem, kas nekad nav nopircis neko.

Šajā pašā kategorijā ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Uzziniet, kā izveidot un pārvaldīt datubāzes ātri un viegli. Sākot ar 29 €.
MySQL (Kurss) MySQL (Kurss)
Vadība ir atvērtā koda datu bāzi. Sākot no € 39.
SQL un datu bāzes (Course) SQL un datu bāzes (Course)
Izveidot un pārvaldīt relāciju datu bāzēm. Sākot no € 39.
Sponsorētās saites