skanuj0297 (3)

skanuj0297 (3)



Rozdział 11. ♦ Więcej o SQL 311

Rozdział 11. ♦ Więcej o SQL 311

mysql> select tytuł, imię, nazwisko, isbn -> from książki, autorzy -> where książki.autorld = autorzy.id;

I tytuł

imię

nazwisko

isbn i

Uczeń Skrytobójcy Królewski Skrytobójca Wyprawa Skrytobójcy W ułamku sekundy bowca dusz Dotyk Zła_

Nie mów nikomu Bez skrupułów Bez pożegnania

Robin

Robin

Robin

Alex

Alex

Alex

Harlan

Harlan

Harlan

r

8389004976

8389004933

8389004941

8323810915

8323816514

8323805547

8387834211

8388722255

8387834238

9 rows in set (0.00 sec)


Rysunek 11.2.

Wynik zapytania łączącego tabele Autorzy i Książki

Typy złączeń

W SQL istnieją różne typy złączeń tabel. Podstawowe złączenia to: INNER JOIN, LEFT JOIN i RIGHT JOIN. Omówimy je pokrótce na kolejnych stronach. Wszystkie typy złączeń obsługiwane przez MySQL opisane są w dokumentacji tego pakietu.

Złączenie typu INNER JOIN

Złączenie typu INNER JOIN, CROSS JOIN lub FULL JOIN to iloczyn kartezjański dwóch lub więcej tabel, który został opisany w poprzedniej sekcji. Złączenie tego typu uzyskujemy wymieniając nazwy tabel oddzielone przecinkami lub też stosując wymienione słowa kluczowe. Konstrukcja taka będzie miała schematyczną postać:

SELECT kolumnal. kolumna2.....kolumnaN

FROM tabel a 1 [INNER | CROSS | FULL] JOIN tabela2 [ON warunek]

[WHERE warunek]

Jeśli chcemy zatem uzyskać pełne złączenie przygotowanych wcześniej tabel Autorzy i Książki, zawierające kolumny Tytuł, Imię, Nazwisko i Isbn, należy zastosować jedną z instrukcji:

1.    SELECT    tytuł,    imię.    nazwisko,    isbn    FROM    Książki    JOIN Autorzy;

2.    SELECT    tytuł.    imię.    nazwisko,    isbn    FROM    Książki    INNER JOIN Autorzy;

3.    SELECT    tytuł,    imię.    nazwisko,    isbn    FROM    Książki    CROSS JOIN Autorzy;

4.    SELECT    tytuł.    imię.    nazwisko,    isbn    FROM    Książki    FULL JOIN Autorzy;

Są to odpowiedniki poznanej już instrukcji:

SELECT tytuł, imię. nazwisko, 1sbn FROM Książki, Autorzy:

I efekt ich działania będzie taki sam (rysunek 11.1 w sekcji „Złączenia”)

W przypadku JOIN, INNER JOIN oraz CROSS JOIN można również zastosować dodatkowe wyrażenie określające warunki złączenia. Jeśli zatem chcemy wyświetlić listę wszystkich książek wraz z imionami i nazwiskami ich autorów zamiast stosować warunek w sekcji WHERE, napiszemy:

SELECT tytuł. tmie. nazwisko, isbn FROM Książki INNER JOIN Autorzy ON Książki,autorid=Autorzy.id:


Wyszukiwarka

Podobne podstrony:
skanuj0299 (2) Rozdział 11. ♦ Więcej o SQL 313 Rozdział 11. ♦ Więcej o SQL 313 mysql> SELECT tytu
skanuj0300 (2) 314 PHP i MySQL dla każdego Rysunek 11.5. mysql> SELECT tytuł, imię, nazwisko, isb
jest równoważne zapytaniu: select ID_P, IMIĘ, NAZWISKO, ID_D from pracownicy where ID_D = 10 or ID_D
test 2 s1 3.11.2004 PK WE Teoretyczne Podstawy Informatyki Test#1 Imię i nazwisko 1.   &nb
rok 2010/11 EKONOMIA I ZARZĄDZANIEEKONOMIASTUDIA STACJONARNE I STOPNIA, 09/10 Stopień, imię i nazwis
• 1 - Sprawozdanie z wykonanego ćwiczenia ni 311 Temat: Badanie tranzystora. Imię i nazwisk): Artur

więcej podobnych podstron