czwartek, 23 grudnia 2010

Jak zaoszczędzić 5 sekund życia

Pisząc zapytania do bazy danych często korzysta się z JOIN'ów (złączeń). Większość programistów zna składnię jaką trzeba się posługiwać. Przykładem takiego zapytania może być

SELECT p.Imie,w.Nazwa FROM Pracownik p
LEFT JOIN Wydzial w ON p.IdWydzial = w.IdWydzial

Mamy tu dwie tabele:
  • Pracownik - zawiera imię pracownika i id wydziału do którego należy
  • Wydział - przechowuje nazwy wydziałów i numery id im przydzielone
Zauważcie, że w tym zapytaniu po klauzuli ON skorzystano z kolumn, które mają taką samą nazwę w obu tabelach (IdWydzial). W takim przypadku zamiast ON można użyć klauzuli USING. Działanie i wynik jest zupełnie identyczny, a zapis krótszy.

SELECT p.Imie,w.Nazwa FROM Pracownik p
LEFT JOIN Wydzial w USING (IdWydzial)

Tak jak napisałem wcześniej, aby zapytanie zadziałało kolumny po których łączymy tabele muszą mieć takie same nazwy. Jeżeli chcemy użyć kilku kolumn musimy wymienić je po przecinku USING (col1,col2,col3) co jest równoznaczne z ON t1.col1=t2.col1 AND t1.col2=t2.col2 AND t1.col3=t2.col3 .

Warto znać tą klauzulę chociażby dlatego, że gdy spotkamy ją w czyimś kodzie będziemy wiedzieli co oznacza. No i oczywiście możemyzaoszczędzić "mnóstwo" czasu i pisania :P

Brak komentarzy: