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 замовлення.order_id, клієнти.customer_name
FROM замовлення
INNER JOIN клієнти ON замовлення.customer_id = клієнти.customer_id;
Розглянемо таблиці клієнти та замовлення:
клієнти
| customer_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
замовлення
| 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 (замовлення LEFT JOIN клієнти):
| order_id | customer_id | amount | customer_name |
|---|---|---|---|
| 101 | 1 | 100 | Alice |
| 102 | 2 | 150 | Bob |
| 103 | 1 | 200 | Alice |
| 104 | 4 | 50 | NULL |