Skip to main content

Чи можна з'єднувати більше двох таблиць?

Так, можна - у SQL дозволено з'єднувати будь-яку кількість таблиць в одному запиті. Головне - правильно задати зв'язки між ними за допомогою JOIN і ON.

Принцип

Кожен новий JOIN просто додає ще одну таблицю до вже з'єднаних даних. SQL проходить по них послідовно, як по ланцюжку.

Приклад

Припустимо, у нас є три таблиці:

  • users - користувачі,
  • orders - замовлення,
  • products - товари.
sql
SELECT users.name, orders.order_date, products.title, products.price FROM users JOIN orders ON users.id = orders.user_id JOIN products ON orders.product_id = products.id;

Що відбувається:

  1. users з'єднується з orders за user_id,
  2. потім результат з'єднується з products за product_id. У підсумку виходить таблиця: користувач - замовлення - товар.

Можна з'єднувати й 4, і 5, і 10 таблиць

sql
FROM A JOIN B ON ... JOIN C ON ... JOIN D ON ...

SQL виконає їх по порядку, крок за кроком.

Важливо

  • Кожне з'єднання повинно мати чітку умову ON, щоб уникнути дублювання (так званий cross join через помилку).

  • Краще давати таблицям алiаси (скорочення) - так запит читається легше:

    sql
    FROM users u JOIN orders o ON u.id = o.user_id JOIN products p ON o.product_id = p.id

Підсумок: Так, з'єднувати можна необмежену кількість таблиць. Головне - вказувати, як саме вони пов'язані між собою, щоб результат був логічним і коректним.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.