ZŁĄCZENIA ZEWNĘTRZNE
1. Wyświetl ID wypożyczenia, markę i model wszystkich wypożyczonych aut.
SELECT
dane_wypozyczen.id_wypozyczenia,
samochody.marka,
samochody.model
FROM dane_wypozyczen
INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu
ORDER BY dane_wypozyczen.id_wypozyczenia
2. Wyświetl ID wypożyczenia, markę, model oraz datę wypożyczenia wszystkich wypożyczonych aut.
SELECT
dane_wypozyczen.id_wypozyczenia,
samochody.marka,
samochody.model
wypożyczenia.data_wyp
FROM dane_wypozyczen
INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu
INNER JOIN wypożyczenia ON wypozyczenia.id_wypozyczen=dane_wypozyczen.id_wypozyczenia
ORDER BY dane_wypozyczenia.id_wypozyczenia
3. Wyświetl model i markę samochodu datę wypożyczenia, jak również imię i nazwisko klienta, który dany samochód wypożyczył.
SELECT
dane_wypozyczen.id_wypozyczenia,
samochody.marka,
samochody.model,
wypozyczenia.data_wyp,
klienci.imie_klienta,
klienci.nazwisko_klienta
FROM dane_wypozyczen
INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu
INNER JOIN wypozyczenia ON wypozyczenia.id_wypozyczenia=dane_wypozyczen.id_wypozyczenia
INNER JOIN klienci ON klienci.id_klienta=wypozyczenia.id_klienta
ORDER BY dane_wypozyczen.id_wypozyczenia;
4. Wyświetl model i markę samochodu datę wypożyczenia, jak również imię i nazwisko klienta, który dany samochód wypożyczył ponadto wypisz imię i nazwisko pracownika, który obsługiwal dane wypożyczenie.
SELECT
dane_wypozyczen.id_wypozyczenia,
samochody.marka,
samochody.model,
wypozyczenia.data_wyp,
klienci.imie_klienta,
klienci.nazwisko_klienta,
pracownicy.imie_pracownika,
pracownicy.nazwisko_pracownika
FROM dane_wypozyczen
INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu
INNER JOIN wypozyczenia ON wypozyczenia.id_wypozyczenia=dane_wypozyczen.id_wypozyczenia
INNER JOIN klienci ON klienci.id_klienta=wypozyczenia.id_klienta
INNER JOIN pracownicy ON pracownicy.id_pracownika=wypozyczenia.id_pracownika
ORDER BY dane_wypozyczen.id_wypozyczenia;
5. Wyświetl markę i model samochodu z datą jego wypożyczenia
SELECT
wypozyczenia.data_wyp,
samochody.marka,
samochody.model
FROM wypozyczenia
INNER JOIN dane_wypozyczen ON wypozyczenia.id_wypozyczenia=dane_wypozyczen.id_wypozyczenia INNER JOIN samochody ON samochody.id_samochodu-dane_wypozyczen.id_samochodu
ORDER BY wypozyczenia.data_wyp
6.
SELECT
d.id_wypozyczenia,
s.marka,
s.model
FROM dane_wypozyczen d
INNER JOIN samochody s ON s.id_samochodu = d.id_samochodu
ORDER BY d.id_wypozyczenia;
LEFT/RIGHT JOIN - złączenie zewnętrzne, które wyświetla rekordy zgodne z warunkiem złączenia oraz wszystkie rekordy pochodzące z tablicy, której nazwa znajduje się po lewej/prawej stronie klauzuli FROM
7. Wyświetl ID wypożyczenia i nazwisko pracownika, który je obsługiwał. Nazwiska pracowników, którzy nie obsługiwali żadnego wypożyczenia również należy wypisać.
SELECT
pracownicy.nazwisko_pracownika,
wypozyczenia.id_wypozyczenia
FROM pracownicy
LEFT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_wypozyczenia;
8. Wyświetl nazwiska pracowników, którzy nie obsługiwali żadnego wypożyczenia.
SELECT
pracownicy.nazwisko_pracownika
FROM pracownicy
LEFT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_pracownika
WHERE wypozyczenia.id_wypozyczenia IS null
ORDER BY `wypozyczenia`.`id_wypozyczenia` ASC;
9. Wyświetl nazwisko pracownika i ID jego wypożyczenia. W przypadku kiedy do ID wypożyczenia nie mamy przypisanego pracownika należy również wyświetlić takie rekordy.
SELECT
pracownicy.nazwisko_pracownika,
wypozyczenia.id_wypozyczenia
FROM pracownicy
RIGHT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_pracownika;