Как я могу сравнить столбцы 2 таблиц из 2 разных таблиц данных?

#sql

#sql

Вопрос:

Мне нужно сравнить столбцы двух разных таблиц из двух разных баз данных. Есть ли способ, которым я могу это сделать? В основном мне нужно проверить, совпадают ли столбцы в этих двух таблицах или они разные. Я хотел бы перечислить столбцы этих двух таблиц рядом.

  • Таблица 1: abc.table1
  • Таблица 2: xyz.table2

Комментарии:

1. Какая у вас СУБД, пожалуйста? (Oracle, MS Sql и т.д.)

Ответ №1:

Я думаю, вы можете сделать это просто, используя ‘INFORMATION_SCHEMA.COLUMNS’ для SQL Server.
ЧТОБЫ НАЙТИ ОДИНАКОВЫЕ столбцы В (SQL SERVER)

 SELECT T1.* FROM 
(SELECT COLUMN_NAME
FROM [DatabaseName1].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table1'
) T1
INNER JOIN
(SELECT COLUMN_NAME
FROM [DatabaseName2].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table2'
) T2 ON T1.COLUMN_NAME=T2.COLUMN_NAME
 

Чтобы найти необычный столбец

 SELECT T1.* FROM 
(SELECT COLUMN_NAME
FROM [DatabaseName1].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table1'
) T1
LEFT JOIN
(SELECT COLUMN_NAME
FROM [DatabaseName1].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table2'
) T2 ON T1.COLUMN_NAME=T2.COLUMN_NAME
WHERE T2.COLUMN_NAME IS NULL
 

Примечание: это будет работать только для SQL Server.

Комментарии:

1. Привет! Как вы думаете, есть ли способ перечислить все столбцы из таблицы 1: abc.table1, которые не найдены в таблице 2: xyz.table2?

2. @Charlie Я не понял, о чем вы на самом деле просили. можете ли вы объяснить немного больше?

3. Ну, изначально я хотел проверить все столбцы в одной таблице по сравнению с другой таблицей. Теперь у меня был список столбцов, которые находятся в Table1, которые не принадлежат Table2.

4. Как я могу проверить, какие столбцы, найденные в таблице 1, отсутствуют в таблице 2?

5. СТОЛБЦЫ ТАБЛИЦЫ 1 -> ИДЕНТИФИКАТОР, ИМЯ, НОМЕР ТЕЛЕФОНА//////// СТОЛБЦЫ ТАБЛИЦЫ 2 —> ИДЕНТИФИКАТОР, ДАТА, НОМЕР ТЕЛЕФОНА ////// РЕЗУЛЬТАТ: ИМЯ /////// (поскольку имя столбца находится в таблице 1, но не найдено в таблице 2)