SQL Server сравнивает две строки таблицы с одинаковыми столбцами и возвращает измененные столбцы

Я хочу сравнить две таблицы с одинаковыми столбцами:

  • product - Id, Name, Description
  • Temp_Product - Id, Name, Description

Теперь выполненное пользователем обновление будет сохранено в Temp_Product, Когда администратор увидит детали этого продукта, мне нужно показать изменения, внесенные пользователем. Я хочу сравнить обе таблицы с запросом и вернуть столбцы, которые изменились с Product в Temp_Product,

Пожалуйста, предложите мне лучший способ сделать это?

2 ответа

Решение
Select p.id,p.name as orgn,t.name as altn,p.descripion as orgd,t.description as altd
from product p
join tmp_product t
on t.id=p.id and (t.name<>p.name or t.description <> p.description)

Я хочу сравнить обе таблицы с запросом и вернуть столбцы, которые изменились с Product на Temp_Product

Поскольку две таблицы имеют одинаковую структуру, вы можете использовать EXCEPT установить oeprator для этого:

SELECT * FROM Temp_Product
EXCEPT
SELECT * FROM Product;

SQL Fiddle Demo

Другие вопросы по тегам