2015-03-02 3 views
0

Мне действительно нужно знать запрос, чтобы отобразить другое поле, которое я хочу назвать его как «number_difference» между 2 таблицами, которым требуется числовое (в данном случае как количество). У меня есть две таблицы, которые полностью совпадают, скажем, меняю значение из таблицы A, поэтому некоторое значение в таблице A отличается от таблицы B. И я хочу объединить ее в 1 таблицу, отображающую строки, которые некоторые значения были изменены. Я уже получаю результат этого запроса:Как узнать разницу чисел между 2 таблицами в sql

**

выберите a.T1, a.T2 a.T3 ... от А где не существует (выберите * от B где a.T1 = b.T1 и a.T2 = b.T2 и a.T3 = b.T3)

**

Этот запрос работает хорошо. Но, я хочу добавить больше поля, номер разницы между этим 2 полем (количеством) в 2 разных таблицах. Так что скажем, a.T3 и b.T3 - величины. И хотите отобразить его как «number_difference» рядом с полем (T2), которое я показываю. Извините, я не могу опубликовать изображения, они говорят, что мне нужно как минимум 10 репутации для публикации. Помогите мне, хозяин, как я могу это делать каждый раз, когда я использую join/internal join, он всегда отображает soo много строк, мне нужны только строки, значения из 1 таблицы, которые я изменил.

Заранее спасибо.

+2

Как вы можете различить две оценки es, если совпадающая строка не существует в 'B'? Измените свой вопрос и добавьте образцы данных и желаемые результаты. –

+0

Да, этот вопрос очень расплывчатый, и нам нужна дополнительная информация. – Namphibian

ответ

0

Вы можете получить что-то вроде этого

Select * From A Where A.id not in(Select Id from B) 

или

Select A.* From A left join B on A.id = B.id Where A.id <> B.id 
0

Если вы специально ориентирована на ситуацию с двумя одинаковыми таблицами, где только один операции Прошел UPDATE (не врезку), и вы хотите идентифицировать те записи, которые были изменены, затем:

select a.* from a, b where a.id=b.id and (a.c1!=b.c1 or a.c2!=b.c2) 
Смежные вопросы