Соединение данных в таблицах¶

Вы можете соединить текущие данные с другой таблицей или даже с сохранённым запросом.
После того как вы нажмёте кнопку «Присоединить данные», вам нужно будет выбрать данные (из той же базы данных), к которым вы хотите присоединиться. Вы можете выбирать только таблицы и сохранённые запросы из той же базы данных, где находятся исходные данные.

Затем вам нужно выбрать столбцы, к которым вы хотите присоединиться. Это означает, что вы выбираете столбец из первой таблицы и столбец из второй таблицы, и соединение будет "сшивать" вместе строки, где значение из первого столбца равно значению во втором столбце. Очень распространённым примером является соединение столбца идентификатора в каждой таблице, поэтому, если вы выбрали таблицу для соединения, где между таблицами существует отношение внешнего ключа, Glarus BI автоматически выберет соответствующие столбцы идентификатора для вас. В конце шага присоединения есть кнопка "Столбцы", где можно выбрать, какие столбцы включать из присоединённых данных.
По умолчанию Glarus BI будет выполнять левое внешнее соединение (left outer join), но вы можете нажать на значок диаграммы Венна, чтобы выбрать другой тип соединения. Не все базы данных поддерживают все типы соединений, поэтому Glarus BI будет отображать только параметры, поддерживаемые используемой вами базой данных.
Вот основные типы соединений:
- Левое внешнее соединение: выбрать все записи из таблицы A, а также записи из таблицы B, которые соответствуют условию соединения, если таковые имеются.
- Правое внешнее соединение: выбрать все записи из таблицы B, а также записи из таблицы A, которые соответствуют условию соединения, если таковые имеются.
- Внутреннее соединение: выбрать только те записи из таблиц A и B, в которых выполняется условие соединения.
- Полное внешнее соединение: выбрать все записи из обеих таблиц независимо от того, выполняется ли условие соединения.
Левое внешнее соединение. Пример. Если таблица A – это заказы, а таблица В – клиенты, и вы выполняете соединение, в котором столбец customer_id в таблице заказов равен столбцу ID в таблице клиентов, когда вы выполняете левое внешнее соединение, ваши результаты будут полным списком всех ваших заказов, и в каждой строке заказа также будут отображаться столбцы клиента, разместившего этот заказ. Поскольку один клиент может размещать много заказов, информация об одном клиенте может многократно повторяться для разных строк заказа. Если для данного заказа нет соответствующего клиента, информация о заказе будет показана, но столбцы клиентов для этой строки будут просто пустыми.
Несколько этапов соединения¶
Во многих случаях у вас могут быть таблицы A, B и C, где у A и B есть связь, у B и C есть связь, а у A и C нет. Если вы хотите соединить A с B и C, все, что вам нужно сделать, это добавить несколько шагов соединения. Нажмите «Соединение данных», присоедините таблицу A к таблице B, затем щёлкните шаг «Соединение данных» под завершённым блоком соединения, чтобы добавить второй шаг соединения и соединить результаты последнего соединения с таблицей C.

Соединение на нескольких условиях¶
Ваши соединения также могут включать несколько условий для уточнения результатов. Glarus BI будет объединять несколько условий с помощью оператора AND.

Объединение с разными операторами¶
Вы можете соединять таблицы по условиям сравнения, например:
=(равно)≠(не равно)>(больше)≥(больше или равно)<(меньше)≤(меньше или равно)

Соединения с произвольными выражениями¶
Иногда нужно соединять данные, используя константы, относительные даты или другие произвольные условия.
Например, предположим, у вас есть таблица отзывов и вы хотите добавить столбец со средним рейтингом по всем товарам.
Можно сначала вычислить средний рейтинг, а затем присоединить результат к таблице отзывов по условию 1=1.

Чтобы использовать произвольное выражение как ключ соединения:
- Нажмите на один из ключей соединения.
- Выберите Произвольное выражение.
- Введите выражение (включая константу вроде
1). - Нажмите Готово.
Ещё пример. Предположим, у вас есть:
- таблица
customers, где имя и фамилия хранятся в столбцахfirst_nameиlast_name; - таблица
accounts, где имя и фамилия хранятся в одном столбцеfull_name.
Вы можете соединить эти таблицы с помощью произвольного выражения. Ключ соединения для таблицы customers будет выглядеть примерно так:
А ключ соединения для таблицы accounts — это просто столбец full_name.
См. также список выражений.