Объедините таблицы на сервере SQL и сообщите недостающие данные из основной таблицы - PullRequest
1 голос
/ 12 февраля 2020

У меня есть 4 таблицы, и я хочу сгруппировать все данные, которых нет в основной таблице.

Например, у меня есть ниже 4 таблицы:

Table_A - 3000 строк:

enter image description here

Таблица_B - 200 строк:

enter image description here

Таблица_ C - 150 строки:

enter image description here

Table_D - 800 строк:

enter image description here

I хотел бы видеть всех пользователей, которых нет в Table_A, и объединить их в одну таблицу (пример, как показано ниже):

enter image description here

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

SELECT *
FROM Table_A A
RIGHT OUTER JOIN Table_B B ON A.Phone_Number = B.Phone_Number
RIGHT OUTER JOIN Table_C C ON A.Phone_Number = C.Phone_Number
RIGHT OUTER JOIN Table_C D ON A.Phone_Number = D.Phone_Number
WHERE A.ID IS NULL

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Если я правильно понимаю, вы хотите совпадать по номерам телефонов. Если так:

select phone_number, max(b_name), max(c_name), max(d_name)
from ((select b.phone_number, b.employee_name as b_name, null as c_name, null as d_name
       from b 
      ) union all
      (select c.phone_number, null, c.employee_name as b_name, null as d_name
       from c 
      ) union all
      (select b.phone_number, null, null, b.employee_name as b_name
       from d
      )
     ) bcd
where not exists (select 1 from a where a.phone_number = bcd.phone_number)
group by phone_number;
0 голосов
/ 12 февраля 2020

Вы можете сделать это таким образом. Я вижу, как вы получите больше знаний, если данные будут отображаться по горизонтали, и это затруднит последующее использование:

Select * from 
(
  select [Employee Name], Phone_Number From table_B
  union
  select [Employee Name], Phone_Number From table_C
  union
  select [Employee Name], Phone_Number From table_D

)
 T
where not exists
(select 1 from Table_A a where a.Phone_Number  = T.Phone_Number )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...