Внешнее соединение между двумя таблицами базы данных 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
. The productTable
таблица является левой таблицей соединения и suppliers
таблица является правой таблицей соединения. The 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
. The productTable
таблица является левой таблицей соединения и suppliers
таблица является правой таблицей соединения. The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.