|
SQL /
Spojení tabulek< Pořadí řádků | SQL postupně | Vnější spojení >
Pro zadání příkazu databázovému systému by to ještě nebylo dostatečné. Musíme určit, jak se ta propojení mají udělat. V SQL se propojení specifikují podmínkami propojení, tj. jaký vzájemný vztah musí platit, aby záznamy byly propojeny. Nejčastější případ je, že má jít o shodu mezi hodnotou ve sloupci (či sloupcích) prvního záznamu a hodnotou ve sloupci (či sloupcích) druhé tabulky. Tak například v našem případě propojení zákazníkových objednávek k zákazníkovi se jedná o shodu mezi hodnotou v poli LOG tabulky ZAK a hodnotou v poli ZAK tabulky OBJ. Příslušná podmínka má formu (LOG=ZAK) . V případě, že pole, která se mají porovnávat, se jmenují stejně, jako například CISO v tabulce OBJ a CISO v tabulce POLOZ, lze v SQL příslušnou podmínku formulovat zkráceně. Použije se jiné klíčové slovo, USING . Dohromady vypadá klauzule FROM pro náš příklad takto:from ZAK join OBJ on(LOG=ZAK) join POLOZ using (CISO) join ZBOZ using (KOD) Dobře lze podobu této části příkazu vyčíst ze schématu, když jdeme "cestou" od počáteční tabulky ke konečné. (Kterou zvolíme za počáteční a kterou za konečnou, je jedno.) Šipky představující vazby cizích klíčů nám slouží jako nápověda, protože propojují pole, která se mají porovnávat. Nakonec celý příkaz vypadá takto: Příklad: Pro zákazníky, kteří někdy nakoupili, vypište login, jméno, příjmení a různé názvy zboží, které kdy nakoupili.
Příklad: Pro zákazníky, kteří někdy nakoupili, vypište pouze login a různé názvy zboží, které kdy nakoupili.
Příklad: Pro zákazníky, kteří někdy nakoupili, vypište login, číslo objednávky a datum objednávky. Řaďte podle zákazníků a data.
Příklad: Pro kategorie, ve kterých máme nějaké zboží, vypište názvy zboží v této kategorii.
< Pořadí řádků | SQL postupně | Vnější spojení > Obsah: |