Какие знаешь виды JOIN

«Какие знаешь виды JOIN» — вопрос из категории Базы данных, который задают на 29% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В SQL существуют несколько видов JOIN:

  1. INNER JOIN - возвращает строки, где есть совпадения в обеих таблицах
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id
  1. LEFT JOIN - возвращает все строки из левой таблицы, даже если нет совпадений справа
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id
  1. RIGHT JOIN - аналогично LEFT, но для правой таблицы

  2. FULL JOIN - возвращает все строки из обеих таблиц, объединяя их по условию

  3. CROSS JOIN - декартово произведение таблиц (все возможные комбинации строк)

  4. SELF JOIN - соединение таблицы с самой собой (используется для иерархических данных)

В Go при работе с SQL можно использовать эти JOIN через стандартный пакет database/sql или ORM вроде GORM.

Видео-ответы