SQL две таблицы с одним уникальным столбцом - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть две таблицы tbl_backupchecks и tbl_backupchecks_sqlbak.

Обе таблицы имеют два имени столбца, Company и ServerName.

Я хочу вернуть набор результатов, состоящий из Company и Servername, нообъединенный список.По существу, если в tbl_backupchecks_SQLBak есть имя сервера и имя компании, которого нет в tbl_backupchecks, я также хочу сообщить об этом.

В основных терминах я хочу получить набор строк, состоящий из двух столбцов;Компания и имя сервера.Я попытался написать левое соединение, но оно выкупило два столбца с именем ServerName.Можно ли это сделать?

Ответы [ 9 ]

5 голосов
/ 01 декабря 2011

Предполагая, что ваши столбцы Company и Servername являются типами данных, которые могут иметь значение DISTINCT, вы можете использовать запрос UNION:

SELECT Company, Servername FROM tbl_backupchecks
UNION
SELECT Company, Servername FROM tbl_backupchecks_sqlbak
0 голосов
/ 01 декабря 2011

Вот решение, которое также скажет вам, где находится запись

select Company, ServerName, sum(case when is_bak=0 then 0 else 1) as in_bak, sum(case when is_bak=0 then 1 else 0) as in_not_bak from (
select Company, ServerName,0 as is_bak from tbl_backupchecks union 
select  SELECT Company, ServerName, 1 as is_bak FROM tbl_backupchecks_SQLBak
) group by Company, ServerName
0 голосов
/ 01 декабря 2011

Я обнаружил, что это может помочь вам. Сначала я думал о объединении, но это выглядит как лучший способ сделать это: t-sql-сравнение-двух таблиц-записей-которые-не-существовать-во-вторых-таблицах

0 голосов
/ 01 декабря 2011

Я думаю, что вы хотите объединить 2 таблицы. Что-то вроде:

SELECT Company, ServerName FROM tbl_backupchecks
UNION 
SELECT Company, ServerName FROM tbl_backupchecks_SQLBak
0 голосов
/ 01 декабря 2011

Если вы хотите получать уникальные записи только от обоих, используйте это:

SELECT DISTINCT Company, ServerName
FROM
(
SELECT Company, ServerName FROM tbl_backupchecks
UNION
SELECT Company, ServerName FROM tbl_backupchecks_sqlbak
) A
0 голосов
/ 01 декабря 2011
SELECT Company, ServerName FROM tbl_backupchecks

UNION

SELECT Company, ServerName FROM tbl_backupchecks_sqlbak

(Измените UNION на UNION ALL, если хотите сохранить дубликаты.)

0 голосов
/ 01 декабря 2011

Я думаю, что вы хотите СОЮЗ:

Для отдельных строк между обеими таблицами используйте это:

SELECT Company,ServerName
FROM tbl_backupchecks
UNION
SELECT Company,ServerName
FROM tbl_backupchecks_sqlbak

Для всех строк из обеих таблиц (не удаляются повторяющиеся строки, существующие в обеих таблицах), используйте это:

SELECT Company,ServerName
FROM tbl_backupchecks
UNION ALL
SELECT Company,ServerName
FROM tbl_backupchecks_sqlbak
0 голосов
/ 01 декабря 2011

Используйте UNION:

SELECT  Company, ServerName 
  FROM  tbl_backupchecks 
UNION
SELECT  Company, ServerName 
  FROM  tbl_backupchecks_sqlbak 
0 голосов
/ 01 декабря 2011

Я думаю, что профсоюз должен сделать это для вас

   SELECT Company, ServerName
   FROM tbl_backupchecks
   UNION
   SELECT Company, ServerName
   FROM tbl_backupchecks_sqlbak
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...