11.12.2012, Vladimír Klaus, navštíveno 4850x
Tento příkaz vytváří kartézský součin – tedy kombinuje všechny hodnoty z jedné tabulky se všemi hodnotami z druhé tabulky. Prakticky to samozřejmě nemá moc valný význam, ale ukážeme si to na stejných tabulkách, jako u ostatních JOIN příkazů.
SELECT * FROM Objednavky, Zakaznici
Objednávek máme v systému 22, zákazníků 11, výsledná tabulka bude mít proto 242 řádek.
Asi se divíte, že nebyl použit přímo příkaz CROSS JOIN, ale toto MS Access nepodporuje. Místo toho stačí výše uvedený SELECT.
Také se to dá zjednodušit pouze na některé sloupce.
SELECT * FROM
(SELECT Castka, Datum FROM Objednavky) a,
(SELECT Prijmeni, Jmeno FROM Zakaznici) b
Jak jste si asi všimli, v dotazu jsou použita jakási písmenka „a“ a „b“. Co to znamená a k čemu to slouží? V příkladu jsou místo tabulek uvedené SELECTy a ty je nutné nějak pojmenovat. Uvedením písmen (nebo jiného identifikátoru) přiřadíme výběrovému dotazu název – alias.
Jiný dotaz by mohl vypadat třeba takto, kdy to ještě zkombinujeme s podmínkou, odkazující se na výsledek prvního SELECTu.
SELECT * FROM
(SELECT * FROM Objednavky) Tab1,
(SELECT Mesto, PSC FROM Zakaznici) Tab2
WHERE Tab1.Castka > 2000
Upozornění: Podobně jako u OUTER JOIN, ani tento výsledek není editovatelný.