sqlinnerjoin

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

Описание

пример

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 столбец как ключ для соединения двух таблиц базы данных.

Примеры

свернуть все

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

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль. База данных содержит таблицы productTable и suppliers.

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

Присоедините две таблицы базы данных, productTable и suppliers. The productTable таблица является левой таблицей соединения и suppliers таблица является правой таблицей соединения. The sqlinnerjoin функция автоматически обнаруживает общий столбец между таблицами.

data - таблица, содержащая совпадающие строки из двух таблиц.

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

Отображение первых трех строк совпадающих данных. Столбцы из правой таблицы отображаются справа от столбцов из левой таблицы.

head(data,3)
ans =

  3×10 table

    productNumber    stockNumber    supplierNumber    unitCost    productDescription    SupplierNumber      SupplierName          City           Country           FaxNumber   
    _____________    ___________    ______________    ________    __________________    ______________    _________________    __________    ________________    ______________

          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' 
          3            4.01e+05          1009            17       'Slinky'                   1009         'Doll's Galore'      'London'      'United Kingdom'    '44 222 2397' 

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

close(conn)

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

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль. База данных содержит таблицы productTable и suppliers.

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

Присоедините две таблицы базы данных, productTable и suppliers. The productTable таблица является левой таблицей соединения и suppliers таблица является правой таблицей соединения. The sqlinnerjoin функция автоматически обнаруживает общий столбец между таблицами. Задайте toy_store каталог и dbo схема для левой и правой таблиц. Используйте 'LeftCatalog' и 'LeftSchema' аргументы пары "имя-значение" для левой таблицы и 'RightCatalog' и 'RightSchema' аргументы пары "имя-значение" для правой таблицы.

data - таблица, содержащая совпадающие строки из двух таблиц.

lefttable = 'productTable';
righttable = 'suppliers';
data = sqlinnerjoin(conn,lefttable,righttable,'LeftCatalog','toy_store', ...
    'LeftSchema','dbo','RightCatalog','toy_store','RightSchema','dbo');

Отображение первых трех строк совпадающих данных. Столбцы из правой таблицы отображаются справа от столбцов из левой таблицы.

head(data,3)
ans =

  3×10 table

    productNumber    stockNumber    supplierNumber    unitCost    productDescription    SupplierNumber      SupplierName          City           Country           FaxNumber   
    _____________    ___________    ______________    ________    __________________    ______________    _________________    __________    ________________    ______________

          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' 
          3            4.01e+05          1009            17       'Slinky'                   1009         'Doll's Galore'      'London'      'United Kingdom'    '44 222 2397' 

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

close(conn)

Используйте подключение ODBC для импорта данных о присоединенных продуктах из двух таблиц базы данных Microsoft ® SQL Server ® в MATLAB ®. Укажите ключ для соединения с таблицами.

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль. База данных содержит таблицы productTable и suppliers.

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

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

data - таблица, содержащая совпадающие строки из двух таблиц.

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

Отображение первых трех строк совпадающих данных. Столбцы из правой таблицы отображаются справа от столбцов из левой таблицы.

head(data,3)
ans =

  3×10 table

    productNumber    stockNumber    supplierNumber    unitCost    productDescription    SupplierNumber      SupplierName          City           Country           FaxNumber   
    _____________    ___________    ______________    ________    __________________    ______________    _________________    __________    ________________    ______________

          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' 
          3            4.01e+05          1009            17       'Slinky'                   1009         'Doll's Galore'      'London'      'United Kingdom'    '44 222 2397' 

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

close(conn)

Используйте подключение ODBC для импорта данных сотрудников из внутреннего соединения между двумя таблицами базы данных Microsoft ® SQL Server ® в MATLAB ®. Задайте левую и правую клавиши для соединения.

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль. База данных содержит таблицы employees и departments.

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

Присоедините две таблицы базы данных, employees и departments, найти менеджеров для конкретных отделов. The employees таблица является левой таблицей соединения и departments таблица является правой таблицей соединения. Здесь имена столбцов ключей отличаются. Задайте MANAGER_ID клавишу в левой таблице с помощью 'LeftKeys' аргумент пары "имя-значение". Задайте DEPT_MANAGER_ID клавишу в правой таблице с помощью 'RightKeys' аргумент пары "имя-значение".

data - таблица, содержащая совпадающие строки из двух таблиц.

lefttable = 'employees';
righttable = 'departments';
data = sqlinnerjoin(conn,lefttable,righttable,'LeftKeys','MANAGER_ID', ...
    'RightKeys','DEPT_MANAGER_ID');

Отображение первых трех строк объединенных данных. Столбцы из правой таблицы отображаются справа от столбцов из левой таблицы.

head(data,3)
ans =

  3×15 table

    EMPLOYEE_ID    FIRST_NAME    LAST_NAME      EMAIL        PHONE_NUMBER           HIRE_DATE           JOB_ID      SALARY    COMMISSION_PCT    MANAGER_ID    DEPARTMENT_ID    DEPARTMENT_ID_1    DEPARTMENT_NAME    DEPT_MANAGER_ID    LOCATION_ID
    ___________    __________    _________    __________    ______________    _____________________    _________    ______    ______________    __________    _____________    _______________    _______________    _______________    ___________

        101         'Neena'      'Kochhar'    'NKOCHHAR'    '515.123.4568'    '2005-09-21 00:00:00'    'AD_VP'      17000          NaN             100             90                90             'Executive'            100             1700    
        102         'Lex'        'De Haan'    'LDEHAAN'     '515.123.4569'    '2001-01-13 00:00:00'    'AD_VP'      17000          NaN             100             90                90             'Executive'            100             1700    
        104         'Bruce'      'Ernst'      'BERNST'      '590.423.4568'    '2007-05-21 00:00:00'    'IT_PROG'     6000          NaN             103             60                60             'IT'                   103             1400    

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

close(conn)

Используйте подключение ODBC для импорта данных о присоединенных продуктах из двух таблиц базы данных Microsoft ® SQL Server ® в MATLAB ®. Укажите количество возвращаемых строк.

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль. База данных содержит таблицы productTable и suppliers.

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

Присоедините две таблицы базы данных, productTable и suppliers. The productTable таблица является левой таблицей соединения и suppliers таблица является правой таблицей соединения. The sqlinnerjoin функция автоматически обнаруживает общий столбец между таблицами. Задайте количество строк для возврата с помощью 'MaxRows' аргумент пары "имя-значение".

lefttable = 'productTable';
righttable = 'suppliers';
data = sqlinnerjoin(conn,lefttable,righttable,'MaxRows',3)
data =

  3×10 table

    productNumber    stockNumber    supplierNumber    unitCost    productDescription    SupplierNumber      SupplierName          City           Country           FaxNumber   
    _____________    ___________    ______________    ________    __________________    ______________    _________________    __________    ________________    ______________

          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' 
          8          2.1257e+05          1001             5       'Train Set'                1001         'Wonder Products'    'New York'    'United States'     '212 435 1617'

data - таблица, содержащая три совпадающие строки из двух таблиц. Столбцы из правой таблицы отображаются справа от столбцов из левой таблицы.

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

close(conn)

Импортируйте данные о присоединенных продуктах из двух таблиц базы данных Microsoft ® SQL Server ® в MATLAB ® с помощью подключения ODBC. Одна из таблиц содержит имя переменной с символом, отличным от ASCII. При импорте данных сохраните имена всех переменных.

Создайте подключение базы данных ODBC к базе данных SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль. База данных содержит таблицы productTable и suppliers.

datasource = "MSSQLServerAuth";
conn = database(datasource,"","");

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

Добавьте столбец в таблицу базы данных productTable. Имя столбца содержит символ, отличный от ASCII.

sqlquery = "ALTER TABLE productTable ADD tamaño varchar(30)"; 
execute(conn,sqlquery)

Присоедините две таблицы базы данных, productTable и suppliers. The productTable таблица является левой таблицей соединения и suppliers таблица является правой таблицей соединения. The sqlinnerjoin функция автоматически обнаруживает общий столбец между таблицами. Задайте количество строк для возврата с помощью 'MaxRows' аргумент пары "имя-значение".

lefttable = 'productTable'; 
righttable = 'suppliers'; 
data = sqlinnerjoin(conn,lefttable,righttable,'MaxRows',3) 
data=3×11 table
    productNumber    stockNumber    supplierNumber    unitCost    productDescription       tama_o      SupplierNumber       SupplierName            City             Country             FaxNumber    
    _____________    ___________    ______________    ________    ___________________    __________    ______________    ___________________    ____________    __________________    ________________

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

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

Сохраните имя переменной, содержащей символ, отличный от ASCII, путем определения VariableNamingRule аргумент пары "имя-значение". Импортируйте данные еще раз.

data = sqlinnerjoin(conn,lefttable,righttable,'MaxRows',3, ...
    'VariableNamingRule',"preserve") 
data=3×11 table
    productNumber    stockNumber    supplierNumber    unitCost    productDescription       tamaño      SupplierNumber       SupplierName            City             Country             FaxNumber    
    _____________    ___________    ______________    ________    ___________________    __________    ______________    ___________________    ____________    __________________    ________________

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

The sqlinnerjoin функция сохраняет не-ASCII символ в имени переменной.

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

close(conn)

Входные параметры

свернуть все

Подключение к базе данных, заданное как ODBC connection объект или JDBC connection объект, созданный с использованием database функция.

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

Пример: 'inventoryTable'

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

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

Пример: 'productTable'

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

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

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

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

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

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

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

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

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

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

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

Пример: 'LeftSchema','dbo'

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

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

Пример: 'RightSchema','dbo'

Типы данных: 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' и одно из следующих значений:

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

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

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

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

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

свернуть все

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

Для столбцов, которые numeric типы данных в таблице базы данных, типы данных переменных в data являются double по умолчанию. Для столбцов с текстом, date, time, или timestamp типы данных в таблице базы данных, типы данных переменных являются массивами ячеек векторов символов по умолчанию.

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

Ограничения

Область аргумента пары "имя-значение" 'VariableNamingRule' имеет следующие ограничения:

  • sqlinnerjoin функция возвращает ошибку, когда вы используете 'VariableNamingRule' аргумент пары "имя-значение" со SQLImportOptions opts объекта.

  • Когда 'VariableNamingRule' Аргумент пары "имя-значение" задано значение 'modify':

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

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

Введенный в R2018a