Sobes.tech
Junior

Как работи SQL Join?

sobes.tech AI

Отговор от AI

SQL JOIN обединява редове от две или повече таблици въз основа на свързаната колона между тях. Има няколко типа JOIN:

  • INNER JOIN: Връща редове, където има съвпадения на стойности и в двете таблици.
  • LEFT (OUTER) JOIN: Връща всички редове от лявата таблица и съответните редове от дясната. Ако няма съвпадение в дясната таблица, се връщат стойности NULL за колоните на дясната таблица.
  • RIGHT (OUTER) JOIN: Връща всички редове от дясната таблица и съответните редове от лявата. Ако няма съвпадение в лявата таблица, се връщат стойности NULL за колоните на лявата таблица.
  • FULL (OUTER) JOIN: Връща всички редове и от двата таблици. Ако няма съвпадение, се връщат стойности NULL за съответните колони.
  • CROSS JOIN: Връща картезианския продукт на двете таблици (всяки ред от първата таблица се комбинира с всеки ред от втората).

Обикновено синтаксисът изглежда така:

SELECT колона1, колона2...
FROM таблица1
JOIN таблица2 ON таблица1.обща_колона = таблица2.обща_колона;

Пример за INNER JOIN:

SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

Нека разгледаме таблиците customers и orders:

customers

customer_id customer_name
1 Alice
2 Bob
3 Charlie

orders

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

Резултатът от INNER JOIN ще бъде:

order_id customer_name
101 Alice
102 Bob
103 Alice

Резултатът от LEFT JOIN (orders LEFT JOIN customers):

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