..
Kdo ví, co znalost SQL, je spojení. V našem průvodci a jiné výrobky jsme vysvětlili, jak spojit a jak je možné vytvořit vztahy mezi různými tabulkami v databázi.
Nejběžnější požadavek je splněn JOIN nástroj pro nalezení záznamů, mezi dvěma tabulkami, v takovém případě zachrání INNER JOIN ustanovení, které přesně lokalizuje a vrací pole, které splňují korespondence snažil do dvou nebo více zúčastněných tabulek ve spojení.
Mnohem méně intuitivní jinak je potřeba, aby stanovili oblasti, které nemají zápas v rámci spojení.
Vezměme si příklad.
Předpokládejme, že chcete spravovat databázi e-commerce skládá pouze ze dvou tabulek:
Ke splnění prvního požadavku, samozřejmě, je docela jednoduchý:
SELECT CUSTOMER.FIRST, CUSTOMER.LAST Z zákazníky INNER JOIN Objednávky ON = clienti.id ordini.id_cliente ORDER BY ASC CUSTOMER.LASTa zatím žádný problém.
Ale jak můžeme udělat pro to, zvrátit výsledek?
No ...
Za prvé, nepoužívejte INNER JOIN, LEFT JOIN, ale najít odpovídající plné, ale ne dílčí, kde jsou však výsledky z levé tabulky se vrátil tak jako tak.
Bez tohoto se podíváme (pomocí klauzule WHERE) byly tyto záznamy chybí (tj. ne nalézt ve zprávě), pak označeny jako NULL (v SQL NULL je definována jako druh "zvláštní hodnotu", která identifikuje absence hodnoty ..)
Podívejme se na kód:
SELECT CUSTOMER.FIRST, CUSTOMER.LAST Z zákazníky LEFT JOIN Objednávky ON = clienti.id ordini.id_cliente KDE SE NULL ordini.id_cliente ORDER BY ASC CUSTOMER.LASTVýsledkem je, ve skutečnosti, že seznam jmen našich zákazníků, kteří nikdy nic nekoupil.
| |
MS Access (Advanced)
Naučte se vytvářet a spravovat databáze snadno a rychle. Od 29 €. |
| |
MySQL (kurz)
Správa open-source databáze. Od 39 €. |
| |
SQL a databází (kurz)
Vytváření a správa relační databáze. Od 39 €. |