SELECT FROM

SELECT FROM, INNER JOIN, RIGHT, LEFT OUTER JOIN – Kurs języka SQL (mySQL) cz. 4c

Ciąg dalszy czwartej C części kursu języka SQL. Tym razem omówię polecenie SELECT, tym razem z : INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN. Przy ich pomocy możemy łączyć ze sobą kilka tabel.

INNER JOIN – łączenie tabel przy wyświetlaniu

W naszych tabelach przechowujemy różne dane, takie jak: pensje, adresy, czy stanowiska. Co w przypadku kiedy chcielibyśmy wyświetlić te dane w jednej tabeli ? Możemy tego dokonać stosując operator INNER JOIN (złączenie wewnętrzne tabel) razem z poleceniem SELECT, które złączy wskazane przez nas tabele i kolumny. Polecenie będzie miało wtedy następującą składnie:

SELECT lista_kolumn FROM nazwa_tabeli INNER JOIN nazwa_tabeli_2 ON warunek_złączenia

Przykład:

Zadaniem naszym jest wyświetlenie w jednej tabeli następujących danych: „id_pracownika”, „imie”, „nazwisko” oraz „adres_email”. Trzy pierwsze dane znajdują się w tabeli „pracownik”, zaś adres e-mail w tabeli „adresy”. Wspólnym polem dla obu tabel jest „id_pracownika” i to ono posłuży nam do złączenia tabel następującym poleceniem:

SELECT pracownik.id_pracownika, imie, nazwisko, adres_email FROM pracownik INNER JOIN adresy ON pracownik.id_pracownika = adresy.id_pracownika

Tab. 4.6 Złączenie tabel pracownik oraz adresy

id_pracownika imie nazwisko adres_email
12008 Jan Kowalski jkowalski@msql.pl
22008 Adam Nowakowski anowak@msql.pl
32008 Kasia Kowalska NULL

 
W trzecim rzędzie pole adresu ma wartość NULL, ponieważ nie zawierało w bazie danych adresu e-mail. Warunek złączenia: pracownik.id_pracownika = adresy.id_pracownika składa się z nazwy_pierwszej_tabeli.wspolna_kolumna = nazwa_drugiej_tabeli.wspolna_kolumna.

Jeżeli chcielibyśmy do tej tabeli dołączyć jeszcze informacje na temat stanowiska pracownika przechowywane w polu „stanowisko” w tabeli „stanowiska” polecenie miałoby następującą formę:

SELECT pracownik.id_pracownika, imie, nazwisko, adres_email, stanowisko FROM pracownik INNER JOIN adresy ON pracownik.id_pracownika = adresy.id_pracownika INNER JOIN stanowiska ON pracownik.id_pracownika = stanowiska.id_pracownika

Tab. 4.7 Złączenie tabel pracownik, adresy oraz stanowiska

 

id_pracownika imie nazwisko adres_email stanowisko
12008 Jan Kowalski jkowalski@msql.pl przedstawiciel handlowy
22008 Adam Nowakowski anowak@msql.pl księgowa
32008 Kasia Kowalska NULL kasjer

W języku SQL mamy jeszcze następujące rodzaje złączeń:

o LEFT OUTER JOIN – lewostronne złączenie zewnętrzne, które zwraca wszystkie wiersze po lewej stronie klauzuli JOIN, zaś z tabeli po prawej stronie tylko wiersze dla których warunek złączenia jest prawdziwy. W przypadku kiedy wiersz z lewej tabeli nie ma odpowiadającego mu wiersza z prawej tabeli to odpowiednie pola zostają wypełniane wartością NULL.

o RIGHT OUTER JOIN – prawostronne złączenie zewnętrzne funkcjonuje w analogiczny sposób.


Wyszukiwarka

Podobne podstrony:
George Starbuck The Works, Poems Selected from Five Decades
0415277442 Routledge Russell on Metaphysics Selections from the Writings of Bertrand Russell Apr 200
Suzuki Duets For Violins Second Violin Parts to Selections from Suzuki Violin School Vols 1 2 and
Maps of the Ancient World Ortelius A Selection of 30 Maps from The Osher and Smith Collections
Isolation of lycopene from crude tomato extract via selective inclusion in deoxycholic acid
Selected Secondary Sources Rituals and ceremonies from late medieval Europe to early America
Lowenthal J Selected Problems from the Era Problem Tournament
Highly selective synthesis of menthols from citral in a one step process
Clive Staples Lewis The Grand Miracle; And Other Selected Essays On Theology And Ethics From God In
An%20Analysis%20of%20the%20Data%20Obtained%20from%20Ventilat
Biomass Fired Superheater for more Efficient Electr Generation From WasteIncinerationPlants025bm 422
Bleaching Water Stains from Furniture
O'Reilly How To Build A FreeBSD STABLE Firewall With IPFILTER From The O'Reilly Anthology
Estimation of Dietary Pb and Cd Intake from Pb and Cd in blood and urine
pages from xm 754sx 3
Functional Origins of Religious Concepts Ontological and Strategic Selection in Evolved Minds
Does the number of rescuers affect the survival rate from out-of-hospital cardiac arrests, MEDYCYNA,
Test 3 notes from 'Techniques for Clasroom Interaction' by Donn Byrne Longman

więcej podobnych podstron