Zagnieżdżanie zapytań i wyszukiwanie danych w dwóch tabelach
Stronę tą wyświetlono już: 4229 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:
users - tabela wypożyczających:
CREATE TABLE users ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name CHAR(255), surname CHAR(255) );rent - tabela, która będzie łączyła użytkownika z daną książką, ta tabela powinna mieć datę wypożyczenia i oddania książki, ale (mówiąc szczerze) na razie zostawmy to sobie na później:
CREATE TABLE users ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, id_book INT UNSIGNED, id_user INT UNSIGNED );
Ponieważ tabele w tej chwili świecą pustkami, wrzućmy do nich niezwłocznie kilka rekordów danych. Dla tabeli users:
I dla tabeli rent, ale (uwaga, uwaga) z wykorzystaniem polecenia SELECT wewnątrz polecenia INSERT:
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:
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>
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ł:
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ł:
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ł:
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ł:
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