PostgreSQL LEFT JOIN (Čeština)

shrnutí: v tomto tutoriálu se naučíte používat klauzuli PostgreSQL LEFT JOIN pro výběr dat z více tabulek.

Úvod do PostgreSQL left JOIN klauzule

Předpokládejme, že máte dvě tabulky: A B.,

Každý řádek v tabulce. A může mít žádné nebo mnoho odpovídající řádky v tabulce B zatímco každý řádek v tabulce. B má jeden a pouze jeden odpovídající řádek v tabulce A .

vyberte data z tabulky A, který může nebo nemusí mít odpovídající řádky v tabulce B LEFT JOIN klauzule.,

následující prohlášení ilustruje LEFT JOIN syntaxi, která se připojí k tabulce A tabulky B :

Code language: SQL (Structured Query Language) (sql)

zapojte se do tabulky A tabulky B tabulky pomocí left join, postupujte takto:

  • První, zadat sloupce v obou tabulkách, ze které chcete vybrat data v SELECT klauzule.
  • druhý, zadejte levou tabulku (tabulka A) v klauzuli FROM.,
  • za Třetí, určit správné tabulky (tabulka B) v LEFT JOIN klauzule a připojit se k stavu po ON klíčové slovo.

klauzuleLEFT JOIN spustí výběr dat z levé tabulky. Pro každý řádek v levé tabulce, porovnává hodnoty v pka sloupec s hodnotu pro každý řádek v fka sloupce pravé tabulky.,

pokud jsou tyto hodnoty stejné, vytvoří klauzule LEFT join nový řádek, který obsahuje sloupce, které se objeví v klauzuli SELECT a přidá tento řádek do sady výsledků.

V případě, že tyto hodnoty nejsou stejné, levá připojit doložku také vytvoří nový řádek, který obsahuje sloupce, které se zobrazí v SELECT klauzule. Kromě toho vyplňuje sloupce, které pocházejí z pravé tabulky, nulou.,

následující Vennův diagram ilustruje, jak LEFT JOIN klauzule funguje:

Všimněte si, že LEFT JOIN je také odkazoval se na jako LEFT OUTER JOIN.

PostgreSQL vlevo připojit příklady

podívejme se na následující film a inventory tabulky ze vzorové databáze.,

Každý řádek film tabulka může mít nula nebo více řádků v inventorytabulka. Každý řádek v tabulce inventory má jeden a pouze jeden řádek v tabulce film.

sloupecfilm_id vytváří spojení mezi tabulkamifilm ainventory.,

následující prohlášení používá LEFT JOIN klauzule join film tabulka inventorytabulka:

Když řádek film tabulka nemá odpovídající řádek v inventorytabulka, hodnota inventory_id sloupci tento řádek NULL.,

následující prohlášení přidává WHERE klauzule najít filmy, které nejsou v inventáři:

následující prohlášení, vrátí stejný výsledek., Rozdíl je, že používá tabulky aliasy, aby se dotaz stručnější:

Pokud obě tabulky mají stejný sloupec název používaný v ON klauzule, můžete použít USING syntaxi jako je tato:

Tato technika je užitečné, když chcete vybrat řádky z jedné tabulky, které nemají odpovídající řádky v druhé tabulce.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přejít k navigační liště