exponenta event banner

sqlinnerjoin

Внутреннее соединение двух таблиц базы данных MySQL

Описание

пример

data = sqlinnerjoin(conn,lefttable,righttable) возвращает таблицу, являющуюся результатом внутреннего соединения между левой и правой таблицами базы данных. Эта функция сопоставляет строки с использованием всех общих столбцов или ключей в обеих таблицах базы данных. Внутреннее соединение сохраняет только строки, совпадающие между двумя таблицами. Выполнение этой функции эквивалентно написанию инструкции SQL SELECT * FROM lefttable,righttable INNER JOIN lefttable.key = righttable.key.

пример

data = sqlinnerjoin(conn,lefttable,righttable,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Например, 'Keys','productNumber' определяет использование productNumber в качестве ключа для соединения двух таблиц базы данных.

Примеры

свернуть все

Используйте подключение к базе данных собственного интерфейса MySQL ® для импорта данных продукта из внутреннего соединения двух таблиц базы данных MySQL в MATLAB ®.

Создайте подключение базы данных собственного интерфейса MySQL к базе данных MySQL с использованием имени источника данных, имени пользователя и пароля. База данных содержит таблицы productTable и suppliers.

datasource = "MySQLNative";
username = "root";
password = "matlab";
conn = mysql(datasource,username,password);

Объединение двух таблиц базы данных, productTable и suppliers. productTable таблица - левая таблица соединения, и suppliers таблица - это правая таблица соединения. sqlinnerjoin функция автоматически обнаруживает общий столбец между таблицами. data - таблица, содержащая совпадающие строки из двух таблиц.

lefttable = "productTable";
righttable = "suppliers";
data = sqlinnerjoin(conn,lefttable,righttable);

Просмотрите первые три строки сопоставленных данных. Столбцы из правой таблицы (suppliers) справа от столбцов в левой таблице (productTable).

head(data,3)
ans=3×10 table
    productNumber    stockNumber    supplierNumber    unitCost    productDescription    SupplierNumber      SupplierName          City           Country           FaxNumber   
    _____________    ___________    ______________    ________    __________________    ______________    _________________    __________    ________________    ______________

          8          2.1257e+05          1001             5       "Train Set"                1001         "Wonder Products"    "New York"    "United States"     "212 435 1617"
          1          4.0035e+05          1001            14       "Building Blocks"          1001         "Wonder Products"    "New York"    "United States"     "212 435 1617"
          2          4.0031e+05          1002             9       "Painting Set"             1002         "Terrific Toys"      "London"      "United Kingdom"    "44 456 9345" 

Закройте подключение к базе данных.

close(conn)

Используйте подключение к базе данных собственного интерфейса MySQL ® для импорта объединенных данных продукта из двух таблиц базы данных MySQL в MATLAB ®. Укажите ключ для соединения таблиц.

Создайте подключение базы данных собственного интерфейса MySQL к базе данных MySQL с использованием имени источника данных, имени пользователя и пароля. База данных содержит таблицы productTable и suppliers.

datasource = "MySQLNative";
username = "root";
password = "matlab";
conn = mysql(datasource,username,password);

Объединение двух таблиц базы данных, productTable и suppliers. productTable таблица - левая таблица соединения, и suppliers таблица - это правая таблица соединения. Укажите ключ или общий столбец между таблицами с помощью 'Keys' аргумент пары имя-значение. data - таблица, содержащая совпадающие строки из двух таблиц.

lefttable = "productTable";
righttable = "suppliers";
data = sqlinnerjoin(conn,lefttable,righttable,'Keys',"supplierNumber");

Просмотрите первые три строки сопоставленных данных. Столбцы из правой таблицы (suppliers) справа от столбцов в левой таблице (productTable).

head(data,3)
ans=3×10 table
    productNumber    stockNumber    supplierNumber    unitCost    productDescription    SupplierNumber      SupplierName          City           Country           FaxNumber   
    _____________    ___________    ______________    ________    __________________    ______________    _________________    __________    ________________    ______________

          8          2.1257e+05          1001             5       "Train Set"                1001         "Wonder Products"    "New York"    "United States"     "212 435 1617"
          1          4.0035e+05          1001            14       "Building Blocks"          1001         "Wonder Products"    "New York"    "United States"     "212 435 1617"
          2          4.0031e+05          1002             9       "Painting Set"             1002         "Terrific Toys"      "London"      "United Kingdom"    "44 456 9345" 

Закройте подключение к базе данных.

close(conn)

Входные аргументы

свернуть все

Подключение к базе данных собственного интерфейса MySQL, указанное как connection объект.

Левая таблица, заданная как вектор символа или скаляр строки. Укажите имя таблицы базы данных в левой части соединения.

Пример: 'inventoryTable'

Типы данных: char | string

Правая таблица, заданная как вектор символа или скаляр строки. Укажите имя таблицы базы данных в правой части соединения.

Пример: 'productTable'

Типы данных: char | string

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: data = sqlinnerjoin(conn,"productTable","suppliers",'LeftCatalog','toy_store','RightCatalog','toy_shop','MaxRows',5) выполняет внутреннее соединение между левой и правой таблицами путем указания каталога для обеих таблиц и возвращает пять совпадающих строк.

Левый каталог, указанный как разделенная запятыми пара, состоящая из 'LeftCatalog' и вектор символов или строковый скаляр. Укажите имя каталога базы данных, в котором хранится левая таблица соединения.

Пример: 'LeftCatalog','toy_store'

Типы данных: char | string

Правый каталог, указанный как разделенная запятыми пара, состоящая из 'RightCatalog' и вектор символов или строковый скаляр. Укажите имя каталога базы данных, в котором хранится правая таблица соединения.

Пример: 'RightCatalog','toy_store'

Типы данных: char | string

Клавиши, указанные как разделенная запятыми пара, состоящая из 'Keys' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Укажите вектор символа или скаляр строки для указания одной клавиши. Для нескольких ключей укажите массив ячеек из символьных векторов или строковый массив. Этот аргумент пары «имя-значение» используется для определения общих ключей (столбцов) между двумя таблицами для объединения.

Вы не можете использовать этот аргумент пары имя-значение с 'LeftKeys' и 'RightKeys' аргументы пары имя-значение.

Пример: 'Keys','MANAGER_ID'

Типы данных: char | string | cell

Левая клавиша, заданная как разделенная запятыми пара, состоящая из 'LeftKeys' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Укажите вектор символа или скаляр строки для указания одной клавиши. Для нескольких ключей укажите массив ячеек из символьных векторов или строковый массив. Этот аргумент пары имя-значение определяет ключи в левой таблице для соединения с правой таблицей.

Используйте этот аргумент пары имя-значение с 'RightKeys' аргумент пары имя-значение. Оба аргумента должны указывать одинаковое количество ключей. sqlinnerjoin функция совмещает значения клавиш в зависимости от их порядка.

Пример: 'LeftKeys',["productNumber" "Price"],'RightKeys',["productNumber" "Price"]

Типы данных: char | string | cell

Правые клавиши, указанные как разделенная запятыми пара, состоящая из 'RightKeys' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Укажите вектор символа или скаляр строки для указания одной клавиши. Для нескольких ключей укажите массив ячеек из символьных векторов или строковый массив. Этот аргумент пары имя-значение определяет ключи в правой таблице для соединения с левой таблицей.

Используйте этот аргумент пары имя-значение с 'LeftKeys' аргумент пары имя-значение. Оба аргумента должны указывать одинаковое количество ключей. sqlinnerjoin функция совмещает значения клавиш в зависимости от их порядка.

Пример: 'LeftKeys',["productIdentifier" "Cost"],'RightKeys',["productNumber" "Price"]

Типы данных: char | string | cell

Максимальное количество возвращаемых строк, указанное как пара, разделенная запятыми, состоящая из 'MaxRows' и положительный числовой скаляр. По умолчанию sqlinnerjoin функция возвращает все строки из выполненного SQL-запроса. Этот аргумент пары имя-значение используется для ограничения количества строк, импортированных в MATLAB ®.

Пример: 'MaxRows',10

Типы данных: double

Правило именования переменных, указанное как пара, разделенная запятыми, состоящая из 'VariableNamingRule' и одно из этих значений:

  • "preserve" - Сохранение большинства имен переменных при sqlinnerjoin функция импортирует данные. Дополнительные сведения см. в разделе Ограничения.

  • "modify" - Удаление символов, отличных от ASCII, из имен переменных sqlinnerjoin функция импортирует данные.

Пример: 'VariableNamingRule',"modify"

Типы данных: string

Выходные аргументы

свернуть все

Объединенные данные, возвращаемые в виде таблицы, содержащей совпадающие строки из соединения левой и правой таблиц. data также содержит переменную для каждого столбца в левой и правой таблицах.

При импорте данных sqlinnerjoin функция преобразует тип данных каждого столбца из базы данных MySQL в тип данных MATLAB. Эта таблица сопоставляет тип данных столбца базы данных преобразованному типу данных MATLAB.

Тип данных MySQLТип данных MATLAB

BIT

logical

TINYINT

double

SMALLINT

double

BIGINT

double

REAL

double

DOUBLE

double

DECIMAL

double

NUMERIC

double

CHAR

string

VARCHAR

string

LONGVARCHAR

string

TIMESTAMP

datetime

DATE

datetime

TIME

duration

YEAR

double

ENUM

categorical

JSON

char

Если имена столбцов являются общими для объединенных таблиц базы данных и имеют один и тот же регистр, то sqlinnerjoin функция добавляет уникальный суффикс к соответствующим именам переменных в data.

Ограничения

Аргумент пары имя-значение 'VariableNamingRule' имеет эти ограничения, если установлено значение 'modify'.

  • Имена переменных Properties, RowNames, и VariableNames являются зарезервированными идентификаторами для table тип данных.

  • Длина каждого имени переменной должна быть меньше числа, возвращаемого namelengthmax.

Представлен в R2020b