..


Sponzorované odkazy

Opakom INNER JOIN, alebo získať záznamy sa nezhodujú

Článok napísal Max Bossi

Kto vie, čo znalosť SQL JOIN. V našom sprievodcovi a iné výrobky sme vysvetlili, ako sa spojiť a ako si môžete vytvoriť vzťahy medzi rôznymi tabuľkami v databáze.

Najčastejšie požiadavka je splnená JOIN nástroj pre nájdenie záznamov, medzi dvoma tabuľkami, v takom prípade pomáha INNER JOIN klauzula, ktorá presne lokalizuje a vracia pole, ktoré spĺňajú korešpondencie snažil do dvoch alebo viacerých zúčastnených tabuliek v spojení.

Oveľa menej intuitívne, je potrebné, aby stanovili oblasti, ktoré inak nemajú zápas v rámci spojenia.

Zoberme si príklad.
Predpokladajme, že máte pre správu databázy e-commerce skladá len z dvoch tabuliek:

  • zákazníkov (obsahujúca základné dáta zákazníkov)
  • zákazky (s obsahom objednávky zo strany zákazníka)
Teraz predpokladajme, že chcete získať dva rôzne zoznamy zákazníkov: 1) zoznam zákazníkov, ktorí si už objednali, 2) zoznam zákazníkov, ktorí ešte nič nekúpil.

Na splnenie prvej požiadavku, samozrejme, je celkom jednoduchý:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 Z zákazníkov







 INNER JOIN Objednávky







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
a zatiaľ žiadny problém.

Ale ako môžeme urobiť pre to, zvrátiť výsledok? No ... Po prvé, nepoužívajte LEFT JOIN, INNER JOIN, ale za účelom nájdenia zápasu nie je plná, ale čiastočné, kde sú však výsledky z ľavej tabuľky sa vrátil tak ako tak.
Bez tohto budeme hľadať (pomocou klauzuly WHERE), chýba záznamy (tj nie nájsť v správe) a potom označené za NULL (v NULL SQL je definovaný ako druh "osobitnú hodnotu", ktorá identifikuje absencia hodnoty ..)

Pozrime sa na kód:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 Z zákazníkov







 LEFT JOIN Objednávky







 ON = clienti.id ordini.id_cliente







 KDE SA NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Výsledkom je, v skutočnosti, že menný zoznam zákazníkov, ktorí si nikdy nič nekúpil.

V rovnakej kategórii ...
E-Learning
MS Access (kurz) MS Access (kurz)
Naučte sa vytvárať a spravovať databázy jednoducho a rýchlo. Od 29 €.
MySQL (kurz) MySQL (kurz)
Správa open-source databázu. Od 39 €.
SQL a databázy (kurz) SQL a databázy (kurz)
Vytváranie a správa relačnej databázy. Od 39 €.
Sponzorované odkazy