Výukový program MySQL

MySQL HOME Úvod do MySQL MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL KDE MySQL A NEBO NE MySQL OBJEDNAT PODLE MySQL INSERT INTO MySQL hodnoty NULL AKTUALIZACE MySQL MySQL DELETE LIMIT MySQL MySQL MIN a MAX MySQL COUNT, AVG, SUM MySQL LIKE Zástupné znaky MySQL MySQL IN MySQL MEZI Aliasy MySQL Připojení k MySQL VNITŘNÍ PŘIPOJENÍ k MySQL MySQL LEFT JOIN MySQL SPRÁVNÉ PŘIPOJENÍ SE MySQL CROSS JOIN Vlastní připojení k MySQL MySQL UNION MySQL GROUP BY MySQL MÁME MySQL EXISTUJE MySQL JAKÉKOLI, VŠECHNY MySQL INSERT SELECT CASE MySQL Funkce MySQL Null Komentáře k MySQL Operátoři MySQL

Databáze MySQL

MySQL Vytvořte DB MySQL Drop DB Vytvořit tabulku MySQL MySQL Drop Table MySQL Alter Table Omezení MySQL MySQL není Null Unikátní MySQL Primární klíč MySQL cizí klíč MySQL Kontrola MySQL Výchozí MySQL Vytvořit index MySQL Automatický přírůstek MySQL Data MySQL Zobrazení MySQL

Reference MySQL

MySQL datové typy Funkce MySQL

Příklady MySQL

Příklady MySQL MySQL kvíz Cvičení MySQL

Připojení k MySQL


Spojovací tabulky MySQL

Klauzule JOINse používá ke spojení řádků ze dvou nebo více tabulek na základě souvisejícího sloupce mezi nimi.

Podívejme se na výběr z tabulky "Objednávky":

OrderID CustomerID OrderDate
10308 2 1996-09-18
10309 37 1996-09-19
10310 77 1996-09-20

Poté se podívejte na výběr z tabulky „Zákazníci“:

CustomerID CustomerName ContactName Country
1 Alfreds Futterkiste Maria Anders Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Mexico
3 Antonio Moreno Taquería Antonio Moreno Mexico

Všimněte si, že sloupec "CustomerID" v tabulce "Objednávky" odkazuje na "CustomerID" v tabulce "Customers". Vztah mezi dvěma výše uvedenými tabulkami je sloupec "CustomerID".

Poté můžeme vytvořit následující příkaz SQL (který obsahuje INNER JOIN), který vybere záznamy, které mají v obou tabulkách odpovídající hodnoty:

Příklad

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

a vytvoří něco takového:

OrderID CustomerName OrderDate
10308 Ana Trujillo Emparedados y helados 9/18/1996
10365 Antonio Moreno Taquería 11/27/1996
10383 Around the Horn 12/16/1996
10355 Around the Horn 11/15/1996
10278 Berglunds snabbköp 8/12/1996

Podporované typy spojení v MySQL

  • INNER JOIN: Vrátí záznamy, které mají v obou tabulkách shodné hodnoty
  • LEFT JOIN: Vrátí všechny záznamy z levé tabulky a odpovídající záznamy z pravé tabulky
  • RIGHT JOIN: Vrátí všechny záznamy z pravé tabulky a odpovídající záznamy z levé tabulky
  • CROSS JOIN: Vrátí všechny záznamy z obou tabulek

VNITŘNÍ PŘIPOJENÍ k MySQL  MySQL LEFT JOIN  MySQL SPRÁVNÉ PŘIPOJENÍ SE  MySQL CROSS JOIN


Otestujte se pomocí cvičení

Cvičení:

Vložte chybějící části do JOINklauzule a spojte dvě tabulky Ordersa Customerspoužijte CustomerIDpole v obou tabulkách jako vztah mezi těmito dvěma tabulkami.

SELECT *
FROM Orders
LEFT JOIN Customers
=
;