Przejdź do treści
Wróć do kursuDane i QA / Lekcja 7 z 10

Lekcja 7 / relacje

Relacje i JOIN: połącz użytkownika z zamówieniem

W prawdziwym systemie dane są podzielone na tabele. Nauczysz się połączyć użytkownika z zamówieniem, żeby zobaczyć pełniejszy obraz zgłoszenia.

Sytuacja z pracy

Klient pisze: „Zapłaciłem, ale nie widzę zamówienia”. Samo konto użytkownika nie wystarczy. Samo zamówienie też nie wystarczy. Chcesz zobaczyć zamówienie razem z e-mailem użytkownika.

Dwie tabele

users

idemail
1anna@example.com
2bartek@example.com

orders

iduser_idamountstatus
1011199paid
102299pending

Nowe pojęcia

users.id identyfikuje użytkownika. orders.user_id wskazuje, do którego użytkownika należy zamówienie. To jest relacja. JOIN pozwala zestawić pasujące rekordy z dwóch tabel.

ON orders.user_id = users.id mówi bazie, po czym ma połączyć rekordy.

Zapytanie SQL

SELECT
  orders.id AS order_id,
  users.email,
  orders.amount,
  orders.status
FROM orders
JOIN users ON orders.user_id = users.id;

Wynik

order_idemailamountstatus
101anna@example.com199paid
102bartek@example.com99pending

Co to znaczy dla QA?

Możesz teraz mówić o zamówieniu i użytkowniku w jednym wyniku. To zmniejsza liczbę przełączeń między ekranami i pozwala szybciej przygotować sensowną notatkę: który użytkownik, które zamówienie, jaki status.

Mini-zadanie

Połącz orders z users i pokaż order_id, email oraz status.

Ćwiczenie praktyczne

Dopisz do zapytania kwotę zamówienia. Potem odpowiedz: które kolumny pochodzą z tabeli orders, a która z tabeli users?

Quiz

Co robi JOIN?

Łączy pasujące rekordy z dwóch tabel.

Po co jest ON?

Określa warunek połączenia, np. orders.user_id = users.id.

Co oznacza AS order_id?

Nadaje kolumnie czytelną nazwę w wyniku.

Co dalej?

Zwykły JOIN pokazuje tylko rekordy, które mają dopasowanie po obu stronach. A co z rekordami, które dopasowania nie mają? To będzie temat następnej lekcji.

Lekcja 7: Relacje i JOIN: połącz użytkownika z zamówieniem | SQL od podstaw dla QA | Mikołaj Mikołajczak