Sobes.tech
Junior

Kuidas töötab SQL Join?

sobes.tech AI

Vastus AI-lt

SQL JOIN ühendab read kahest või enamast tabelist nende vahel oleva seotud veeru alusel. On olemas mitu JOIN tüüpi:

  • INNER JOIN: Tagastab read, kus väärtused vastavad mõlemas tabelis.
  • LEFT (OUTER) JOIN: Tagastab kõik read vasakpoolsest tabelist ja sobivad read parempoolsest tabelist. Kui sobivusi ei ole, on parempoolsete veergude väärtused NULL.
  • RIGHT (OUTER) JOIN: Tagastab kõik read parempoolsest tabelist ja sobivad read vasakpoolsest tabelist. Kui sobivusi ei ole, on vasakpoolsete veergude väärtused NULL.
  • FULL (OUTER) JOIN: Tagastab kõik read mõlemast tabelist. Kui sobivusi ei ole, on vastavates veergudes NULL.
  • CROSS JOIN: Tagastab kahe tabeli dekartse toote (iga esimese tabeli rida ühendatakse iga teise tabeli reaga).

Süntaks näeb tavaliselt välja selline:

SELECT veerg1, veerg2...
FROM tabel1
JOIN tabel2 ON tabel1.ühine_veerg = tabel2.ühine_veerg;

Näide INNER JOIN:

SELECT tellimused.order_id, kliendid.customer_name
FROM tellimused
INNER JOIN kliendid ON tellimused.customer_id = kliendid.customer_id;

Vaatame kliendid ja tellimused tabelid:

kliendid

customer_id customer_name
1 Alice
2 Bob
3 Charlie

tellimused

order_id customer_id amount
101 1 100
102 2 150
103 1 200
104 4 50

INNER JOIN tulemuseks on:

order_id customer_name
101 Alice
102 Bob
103 Alice

LEFT JOIN tulemuseks (tellimused LEFT JOIN kliendid):

order_id customer_id amount customer_name
101 1 100 Alice
102 2 150 Bob
103 1 200 Alice
104 4 50 NULL