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 |