Внешнее соединение двух таблиц базы данных MySQL
возвращает таблицу, являющуюся результатом внешнего соединения между левой и правой таблицами базы данных. Укажите тип соединения: левое или правое соединение. Эта функция сопоставляет строки с использованием всех общих столбцов или ключей в обеих таблицах базы данных. Внешнее соединение сохраняет совпадающие и несопоставленные строки между двумя таблицами. Выполнение этой функции эквивалентно написанию инструкции SQL data = sqlouterjoin(conn,lefttable,righttable,'Type',type)SELECT * FROM lefttable LEFT JOIN righttable ON lefttable.key = righttable.key или SELECT * FROM lefttable RIGHT JOIN righttable ON lefttable.key = righttable.key.
использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Например, data = sqlouterjoin(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 таблица - это правая таблица соединения. sqlouterjoin функция автоматически обнаруживает общий столбец между таблицами. Используйте 'Type' аргумент пары имя-значение для извлечения записей, которые имеют совпадающие значения в выбранном столбце обеих таблиц, и несопоставленные записи только из левой таблицы. data - таблица, содержащая совпадающие и несопоставленные строки из двух таблиц.
lefttable = "productTable"; righttable = "suppliers"; data = sqlouterjoin(conn,lefttable,righttable,'Type',"left");
Отображение первых трех строк объединенных данных. Столбцы из правой таблицы (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 = "MySQLDataSource"; username = "root"; password = "matlab"; conn = mysql(datasource,username,password);
Объединение двух таблиц базы данных, productTable и suppliers. productTable таблица - левая таблица соединения, и suppliers таблица - это правая таблица соединения. sqlouterjoin функция автоматически обнаруживает общий столбец между таблицами. Используйте 'Type' аргумент пары имя-значение для извлечения записей, которые имеют совпадающие значения в выбранном столбце обеих таблиц, и несопоставленные записи только из левой таблицы. Укажите ключ или общий столбец между таблицами с помощью 'Keys' аргумент пары имя-значение. data - таблица, содержащая совпадающие и несопоставленные строки из двух таблиц.
lefttable = "productTable"; righttable = "suppliers"; data = sqlouterjoin(conn,lefttable,righttable,'Type',"left",'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)
conn - Подключение базы данных собственного интерфейса MySQL ®connection объект Подключение к базе данных собственного интерфейса MySQL, указанное как connection объект.
lefttable - Левый столЛевая таблица, заданная как вектор символа или скаляр строки. Укажите имя таблицы базы данных в левой части соединения.
Пример: 'inventoryTable'
Типы данных: char | string
righttable - Правый столПравая таблица, заданная как вектор символа или скаляр строки. Укажите имя таблицы базы данных в правой части соединения.
Пример: 'productTable'
Типы данных: char | string
type - Тип внешнего соединения'left' | 'right'Тип внешнего соединения, указанный как разделенная запятыми пара, состоящая из 'Type' и одно из этих значений:
'left' - левое соединение извлекает записи, имеющие совпадающие значения в выбранном столбце обеих таблиц, и несопоставленные записи только из левой таблицы.
'right' - правое соединение извлекает записи, имеющие совпадающие значения в выбранном столбце обеих таблиц, и несопоставленные записи только из правой таблицы.
Это значение можно указать как вектор символа или скаляр строки.
Пример: 'Type','left'
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
data = sqlouterjoin(conn,"productTable","suppliers",'Type','left','MaxRows',5) выполняет внешнее левое соединение между левой и правой таблицами и возвращает пять строк объединенных данных.'LeftCatalog' - Левый каталогЛевый каталог, указанный как разделенная запятыми пара, состоящая из 'LeftCatalog' и вектор символов или строковый скаляр. Укажите имя каталога базы данных, в котором хранится левая таблица соединения.
Пример: 'LeftCatalog','toy_store'
Типы данных: char | string
'RightCatalog' - Правый каталогПравый каталог, указанный как разделенная запятыми пара, состоящая из 'RightCatalog' и вектор символов или строковый скаляр. Укажите имя каталога базы данных, в котором хранится правая таблица соединения.
Пример: 'RightCatalog','toy_store'
Типы данных: char | string
'Keys' - КлючиКлавиши, указанные как разделенная запятыми пара, состоящая из 'Keys' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Укажите вектор символа или скаляр строки для указания одной клавиши. Для нескольких ключей укажите массив ячеек из символьных векторов или строковый массив. Этот аргумент пары «имя-значение» используется для определения общих ключей (столбцов) между двумя таблицами для объединения.
Вы не можете использовать этот аргумент пары имя-значение с 'LeftKeys' и 'RightKeys' аргументы пары имя-значение.
Пример: 'Keys','MANAGER_ID'
Типы данных: char | string | cell
'LeftKeys' - Левые клавишиЛевая клавиша, заданная как разделенная запятыми пара, состоящая из 'LeftKeys' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Укажите вектор символа или скаляр строки для указания одной клавиши. Для нескольких ключей укажите массив ячеек из символьных векторов или строковый массив. Этот аргумент пары имя-значение определяет ключи в левой таблице для соединения с правой таблицей.
Используйте этот аргумент пары имя-значение с 'RightKeys' аргумент пары имя-значение. Оба аргумента должны указывать одинаковое количество ключей. sqlouterjoin функция совмещает значения клавиш в зависимости от их порядка.
Пример: 'LeftKeys',["productNumber" "Price"],'RightKeys',["productNumber" "Price"]
Типы данных: char | string | cell
'RightKeys' - Правые клавишиПравые клавиши, указанные как разделенная запятыми пара, состоящая из 'RightKeys' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Укажите вектор символа или скаляр строки для указания одной клавиши. Для нескольких ключей укажите массив ячеек из символьных векторов или строковый массив. Этот аргумент пары имя-значение определяет ключи в правой таблице для соединения с левой таблицей.
Используйте этот аргумент пары имя-значение с 'LeftKeys' аргумент пары имя-значение. Оба аргумента должны указывать одинаковое количество ключей. sqlouterjoin функция совмещает значения клавиш в зависимости от их порядка.
Пример: 'LeftKeys',["productIdentifier" "Cost"],'RightKeys',["productNumber" "Price"]
Типы данных: char | string | cell
'MaxRows' - Максимальное количество возвращаемых строкМаксимальное количество возвращаемых строк, указанное как пара, разделенная запятыми, состоящая из 'MaxRows' и положительный числовой скаляр. По умолчанию sqlouterjoin функция возвращает все строки из выполненного SQL-запроса. Этот аргумент пары имя-значение используется для ограничения количества строк, импортированных в MATLAB ®.
Пример: 'MaxRows',10
Типы данных: double
'VariableNamingRule' - Правило именования переменных"preserve" (по умолчанию) | "modify"Правило именования переменных, указанное как пара, разделенная запятыми, состоящая из 'VariableNamingRule' и одно из этих значений:
"preserve" - Сохранение большинства имен переменных при sqlouterjoin функция импортирует данные. Дополнительные сведения см. в разделе Ограничения.
"modify" - Удаление символов, отличных от ASCII, из имен переменных sqlouterjoin функция импортирует данные.
Пример: 'VariableNamingRule',"modify"
Типы данных: string
data - Объединенные данныеОбъединенные данные, возвращенные в виде таблицы, которая содержит строки, соответствующие ключам в левой и правой таблицах базы данных, и сохраненные несопоставленные строки. data также содержит переменную для каждого столбца в левой и правой таблицах.
При импорте данных sqlouterjoin функция преобразует тип данных каждого столбца из базы данных MySQL в тип данных MATLAB. Эта таблица сопоставляет тип данных столбца базы данных преобразованному типу данных MATLAB.
| Тип данных MySQL | Тип данных MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если имена столбцов являются общими для объединенных таблиц базы данных и имеют один и тот же регистр, то sqlouterjoin функция добавляет уникальный суффикс к соответствующим именам переменных в data.
Переменные в data которые соответствуют столбцам в левой таблице, содержат NULL при отсутствии совпадающих строк в правой таблице базы данных. Аналогично, переменные, соответствующие столбцам в правой таблице, содержат NULL при отсутствии совпадающих строк в левой таблице базы данных.
Аргумент пары имя-значение 'VariableNamingRule' имеет эти ограничения, если установлено значение 'modify'.
Имена переменных Properties, RowNames, и VariableNames являются зарезервированными идентификаторами для table тип данных.
Длина каждого имени переменной должна быть меньше числа, возвращаемого namelengthmax.
close | mysql | sqlfind | sqlinnerjoin | sqlread
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.