Průvodce používáním vnitřních spojů v SQL ke skupinovým datům z více tabulek

Pomocí kombinace SQL Inner Joins kombinujete data ze tří nebo více tabulek

Pomocí příkazů SQL JOIN můžete kombinovat data ze tří nebo více tabulek. SQL JOIN je extrémně flexibilní a jeho výkonné funkce lze kombinovat s daty z více tabulek. Podívejme se na příkazy SQL, které vám umožňují kombinovat výsledky ze tří různých tabulek pomocí vnitřního spojení.

Vnitřní příklad připojení

Vezměte si například tabulky, které obsahují ovladače v jedné tabulce a zápalky vozidel ve druhé. Vnitřní spoj se vyskytuje tam, kde se ve stejném městě nacházejí jak vozidlo, tak řidič. Vnitřní spoj si vybere všechny řádky z obou tabulek, které obsahují shodu mezi sloupci umístění.

Výše uvedený příkaz SQL kombinuje data z tabulek Ovladače a vozidla v případech, kdy se řidič a vozidlo nacházejí ve stejném městě:

SELECT příjmení, jméno, značka FROM ovladače, vozidla WHERE drivers.location = vehicles.location

Tento dotaz vytvoří následující výsledky:

jméno příjmení -------- --------- --- Baker Roland H122JM Smythe Michael D824HA Smythe Michael P091YF Jacobs Abraham J291QR Jacobs Abraham L990MT

Nyní rozšiřte tento příklad o třetí tabulku. Představte si, že jste chtěli zahrnout pouze řidiče a vozidla přítomná v místech otevřených o víkendu. Do vašeho dotazu můžete přidat třetí tabulku rozšířením příkazu JOIN takto:

SELECT příjmení, jméno, tag, open_weekends FROM ovladače, vozidla, místa WHERE drivers.location = vehicles.location AND vehicles.location = locations.location AND locations.open_weekends = 'Ano' příjmení jméno první jméno open_weekends -------- --------- --- ------------- Baker Roland H122JM ano Jacobs Abraham J291QR ano Jacobs Abraham L990MT ano

Toto výkonné rozšíření základního příkazu SQL JOIN umožňuje kombinovat data složitým způsobem. Kromě kombinace stolů s vnitřním spojem můžete také tuto kombinaci použít pro kombinování více tabulek pomocí vnějšího spojení. Vnější spojení zahrnují výsledky, které existují v jedné tabulce, ale ve spojované tabulce nemají odpovídající shodu.