Zagnieżdżanie zapytań i wyszukiwanie danych w dwóch tabelach

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 4277 razy

Drodzy Czytelnicy, jak zapewne już wiecie, życie to nie jest bajka tak więc czas zakasać rękawy i zapoznać się z nieco trudniejszymi zapytaniami zagnieżdżonymi i sposobem wyszukiwania danych w dwóch tabelach. Zanim jednak, to najpierw konieczne jest utworzenie w istniejącej już bazie danych library nie jednej a dwóch dodatkowych tabel:

Ponieważ tabele w tej chwili świecą pustkami, wrzućmy do nich niezwłocznie kilka rekordów danych. Dla tabeli users:

insert into users (name, surname) value ('Adam', 'Kowalski'), ('Zenon', 'Pietrucha'), ('Grzegoż', 'Brzęczyszczykiewicz'), ('Leon', 'Zawodowiec'), ('Ania', 'Kopała');

I dla tabeli rent, ale (uwaga, uwaga) z wykorzystaniem polecenia SELECT wewnątrz polecenia INSERT:

insert into rent (id_book, id_user) value ((select id from books where title='Rio Anaconda'), (select id from users where surname = 'Kowalski')), ((select id from books where title='Odyseja kosmiczna 2010'), (select id from users where surname = 'Kowalski')), ((select id from books where title='Odyseja kosmiczna 2001'), (select id from users where surname = 'Zawodowiec'));

Spójrzmy teraz, jak wspaniale wygląda nasza tabelka rent:

mysql> select * from rent;
+----+---------+---------+
| id | id_user | id_book |
+----+---------+---------+
|  1 |       1 |      12 |
|  2 |       1 |       9 |
|  4 |       4 |       8 |
+----+---------+---------+
3 rows in set (0.00 sec)

mysql>

No cóż, szału nie ma, ale takie jest życie. Nie ma co płakać, czas wyświetlić wszystkie książki, jakie wypożyczył użytkownik o nazwisku Kowalski. Zapytanie będzie wyglądało tak:

SELECT books.title, books.author FROM books, rent WHERE rent.id_book = books.id AND rent.id_user = (SELECT id FROM USERS WHERE surname = 'Kowalski');

I cóż my tu u licha mamy? Nie dość, że wykorzystane zostało zagnieżdżone polecenie SELECT to nawiązane zostało połączenie pomiędzy dwiema tabelami: books i rent.

Wynik powyższego zapytania wpisanego w konsoli będzie wyglądał następująco:

mysql> select books.title, books.author from books, rent where rent.id_book = books.id and rent.id_user = (select id from users where surname = 'Kowalski');
+------------------------+-----------------+
| title                  | author          |
+------------------------+-----------------+
| Rio Anaconda           | W. Cejrowski    |
| Odyseja kosmiczna 2010 | Arthur C. Clark |
+------------------------+-----------------+
2 rows in set (0.00 sec)

mysql>
Propozycje książek
tytuł: SQL dla analityków danych. Tworzenie zbiorów danych dla początkujących autor: Renée M. P. Teate

Tytuł:

SQL dla analityków danych. Tworzenie zbiorów danych dla początkujących

Autor:

Renée M. P. Teate

tytuł: SQL w mgnieniu oka. Opanuj język zapytań w 10 minut dziennie. Wydanie V autor: Ben Forta

Tytuł:

SQL w mgnieniu oka. Opanuj język zapytań w 10 minut dziennie. Wydanie V

Autor:

Ben Forta

tytuł: Praktyczna nauka SQL dla Oracle. Wykorzystaj ogromne możliwości bazy danych Oracle autor: Kim Berg Hansen

Tytuł:

Praktyczna nauka SQL dla Oracle. Wykorzystaj ogromne możliwości bazy danych Oracle

Autor:

Kim Berg Hansen

tytuł: MS SQL Server. Zaawansowane metody programowania. Wydanie II autor: Adam Pelikant

Tytuł:

MS SQL Server. Zaawansowane metody programowania. Wydanie II

Autor:

Adam Pelikant

tytuł: SQL w mgnieniu oka. Opanuj język zapytań w 10 minut dziennie. Wydanie V autor: Ben Forta

Tytuł:

SQL w mgnieniu oka. Opanuj język zapytań w 10 minut dziennie. Wydanie V

Autor:

Ben Forta

tytuł: Mistrzowski SQL. 61 technik pisania wydajnego kodu SQL autor: John L. Viescas, Douglas J. Steele, Ben G. Clothier

Tytuł:

Mistrzowski SQL. 61 technik pisania wydajnego kodu SQL

Autor:

John L. Viescas, Douglas J. Steele, Ben G. Clothier

tytuł: Kompletny przewodnik po DAX. Analiza biznesowa przy użyciu Microsoft Excel, SQL Server Analysis Services i Power BI autor: Ferrari Alberto, Russo Marco

Tytuł:

Kompletny przewodnik po DAX. Analiza biznesowa przy użyciu Microsoft Excel, SQL Server Analysis Services i Power BI

Autor:

Ferrari Alberto, Russo Marco

tytuł: Podstawy języka T-SQL Microsoft SQL Server 2016 i Azure SQL Database autor: Ben-Gan Itzik

Tytuł:

Podstawy języka T-SQL Microsoft SQL Server 2016 i Azure SQL Database

Autor:

Ben-Gan Itzik

tytuł: Zapytania w języku T-SQL. w Microsoft SQL Server 2014 i SQL Server 2012 autor:

Tytuł:

Zapytania w języku T-SQL. w Microsoft SQL Server 2014 i SQL Server 2012

Autor:

tytuł: Microsoft SQL Server 2014. Optymalizacja zapytań autor: Benjamin Nevarez

Tytuł:

Microsoft SQL Server 2014. Optymalizacja zapytań

Autor:

Benjamin Nevarez

W związku z tym, że firma Helion nie wywiązuje się z swoich zobowiązań naliczania prowizji za każdą zakupioną książkę a kontakt z ową frmą jest nie możliwy autor strony zmuszony został do zablokowania linkowania książek. Za wszelkie niedogodności z tym związane z góry przepraszam i obiecuję włączenie linkowania gdy tylko sprawa zostanie wyjaśniona