Archiwa tagu: sql

Kilkukrotny join do tej samej tabeli

Bywa tak, że w bazie danych mamy tabelę, w której znajduje się więcej niż jeden klucz obcy do tej samej (innej) tabeli. Na pierwszy „rzut oka” można pomyśleć, że bredzę i takich rzeczy się nie robi tylko wykorzystuje kolejną tabelę do stworzenia relacji – niby tak, niby nie :) Ale o tym później. Skupmy się na sytuacji kiedy potrzeba nam wyciągnąć dane z owej tabeli wraz z informacjami z tej, do której prowadzą klucze. Pojawia się pytanie jak w SQLu zapisać warunek kilkukrotnego złączenia do tej samej tabeli, co z duplikującymi się nazwami atrybutów (pól) itd., jak to ogarnąć ? Ja powiem Ci jak – do dzieła ! Czytaj dalej

Zapytanie insert z selectem

Zastanawiałe(a)ś się kiedyś czy można wstawić rekordy do bazy danych tak aby w określonych kolumnach dynamicznie załadowały się dane z innej tabeli ? Podam Ci przykład – masz tabelę obecności np. pracowników na szkoleniu. Pracownicy są podzieleni na grupy. W momencie uruchomienia szkolenia chcesz aby do bazy wpisały się domyślnie rekordy z obecnościami wszystkich członków danej grupy. Rzecz jest banalna – pobieramy wszystkich członków grupy, po stronie PHP robimy pętlę, w której do zmiennej np. $query dopisujemy kolejne instrukcje insert i po pętli wykonujemy zapytanie. Sposób oczywiście zadziała, ale można sobie poradzić z operacją zupełnie inaczej wykorzystując jedynie SQLa. Stworzymy więc zapytanie insert zawierające zapytanie select dzięki czemu pewne dane będą pobierane bezpośrednio z bazy. Czytaj dalej

IF w zapytaniu SQL

Instrukcja warunkowa w zapytaniu do bazy to bardzo przydatna rzecz, jednak w różnego rodzaju poradnikach, kursach nauki SQLa często nie wspomina się o takich możliwościach, a skupia się na podstawach czyli pobraniu rekordów, wstawieniu nowych, aktualizacji czy kasowaniu istniejących i różnego rodzaju złączeniach. Można również rzec, że po co komplikować zapytanie skoro możemy pewne operacje wykonać programistyczne w pętli już po odczycie rekordów ? Czytaj dalej