skanuj0299 (2)

skanuj0299 (2)



Rozdział 11. ♦ Więcej o SQL 313

Rozdział 11. ♦ Więcej o SQL 313

mysql> SELECT tytuł, imię, nazvrisko, isbn

-> EROM książki LEFT 301N autorzy ON książki,autorid=autorzy.id;

tytuł

imię

nazwisko

isbn

Uczeń Skrytobójcy

Królewski Skrytobójca

Wyprawa Skrytobójcy

W ułamku sekundy

Łowca dusz

Dotyk Zła

Nie mów nikomu

Bez skrupułów

Bez pożegnania

Klin

Robin

Robin

Robin

Al ex

Alex

Alex

Harlan

Harlan

Harlan

NULL

Hobb

Hobb

Hobb

Kava

Kava

Coben

Coben

NULL

8389004976

8389004933

8389004941

8323810915

8323816514

8323805547

8387834211

8388722255

8387834238

8385103201

10 rows in set (0.00 sec)


Rysunek 11.3.

Wynik zapylania typu LEFTJOIN

Wynik takiego zapytania jest widoczny na rysunku 11.4.

Rysunek 11.4.

Dane książki, dla której brakuje wpisu w tabeli Autorzy


mysql> SELECT tytuł, imię, nazwisko, isbn, autorld

-> FROM książki LEFT 301N autorzy ON książki.autorid=autorzy.id -> WHERE autorzy.id is nuli;

I tytuł | imię | nazwisko | isbn    | autorld |

I Klin | NULL I NULL | 838S103201 |    5 | 1 row in set (0.00 sec)

Złączenie typu RIGHT JOIN

Złączenie typu RIGHT JOIN działa analogicznie do LEFT J0IN, z tym że w tabeli wynikowej uwzględnia wiersze z drugiej tabeli, które nie mają swoich odpowiedników w tabeli pierwszej. Załóżmy np., że w tabeli Autorzy znajdzie się wpis zawierający w polu Autorld identyfikator, który nie występuje w tabeli Książki. Uzupełnijmy znaną nam tabelę Autorzy, tak by zawierała następujące dane:

Autorzy

| Id | Imię

| Nazwisko |

| 1 | Robin

1 Hobb

| 2 1 Alex

j Kava

| 3 j Harlan

| Coben

1 4 | Terry

j Pratchett |


Tabelę Książki pozostawiamy bez zmian (np. w postaci takiej, jak przedstawiona w poprzedniej sekcji). Tym samym w bazie istnieje wpis dotyczący autora, którego książek nie mamy w bazie. Wykonanie zapytania w postaci:

SELECT tytuł, imię, nazwisko, isbn FROM książki RIGHT JOIN autorzy ON książki.autorid-autorzy.id:

spowoduje uzyskanie wyniku widocznego na rysunku 11.5.

Łatwo wszakże zaważyć, że RIGHT JOIN i LEFT JOIN to funkcjonalne odpowiedniki. Wystarczy zmieniać kolejność tabel, aby uzyskać jedno bądź drugie zapytanie. Przykładowo, aby uzyskać wynik przedstawiony na rysunku 11.5, zamiast złączenia typu


Wyszukiwarka

Podobne podstrony:
skanuj0297 (3) Rozdział 11. ♦ Więcej o SQL 311 Rozdział 11. ♦ Więcej o SQL 311 mysql> select tytu
skanuj0300 (2) 314 PHP i MySQL dla każdego Rysunek 11.5. mysql> SELECT tytuł, imię, nazwisko, isb
skanuj0303 (2) Rozdział 11. ♦ Więcej o SQL 317 Której funkcji należy użyć, aby dowiedzieć się, jaka
skanuj0305 (3) Rozdział 11. ♦ Więcej o SQL 319 SELECT Klientld. MIN(Wartosc) AS MIN. MAX(Wartosc) AS
skanuj0310 (2) Rozdział 11. ♦ Więcej o SQL 325 W przypadku już istniejącej tabeli jej typ może zosta
skanuj0314 (2) Rozdział 11. ♦ Więcej o SQL 329 Korzystanie z kluczy obcych wiąże się niestety z kilk

więcej podobnych podstron