2016-11-27 4 views
1

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

Таблица 1

ID  | Name | Price 
----------------------------- 
1  | Casio | 30 
2  | Titan | 40 

Таблица 2

ID  | Place | Price 
----------------------------- 
1  | Cali | 30 

2  | Mexi | 10 

Операция для выполнения: Таблица1 (цена) - Table2 (Цена) для ID = 1

Новая таблица 1

ID  | Name | Price 
----------------------------- 
1  | Casio | 0 
2  | Titan | 40 

ID совпадает в обеих таблицах

+0

ли записи из разных таблиц соответствий по ID колонке? Если да, то почему эти записи находятся в разных таблицах? – yvs

+0

Прежде всего, я не вижу логики вычитания table1.casio.price-table.cali.price. вы уверены, что обе таблицы будут содержать одинаковое количество строк? –

+0

Да Идентификационные совпадения в обоих столбцах –

ответ

1

Вы должны рассмотреть другой дизайн базы данных для обработки этого дела.

Но чтобы ответить на ваш вопрос, вы можете создать вид:

create view Differences2 as (
    select t1.id, t1.price - t2.price 
    from t1, t2 
    where t1.id = t2.id 
) 
+1

Этот ответ вычисляет разницу между каждой записью из Таблицы 1 и каждой записью из Таблицы 2, даже если записи не совпадают. Я думаю, в вашем ответе должно быть условие «ГДЕ». – yvs

+0

Спасибо, забыл, где предложение :) – Max

1

Как вы сказали, как таблица будет иметь тот же столбец ID можно использовать следующий запрос.

SELECT table1.ID, table1.Name, (table1.Price-table2.Price) AS Price 
FROM table1 
INNER JOIN table2 ON table1.ID = table2.ID 

Если вы хотите обновить запись, вы можете использовать следующие:

UPDATE table1 
    INNER JOIN table2 ON table1.ID = table2.ID 
     SET table1.Price = (table1.Price-table2.Price) 
+0

Этот ответ предполагает, что «Идентификаторы да в обоих столбцах», но я считаю, что это неправильный комментарий, поскольку первый идентификатор представляет собой хороший, второй идентификатор представляет собой место. и должно быть одно-много-много-много отношений. – yvs

+0

@ yvs Я согласен с тобой, это то, что я просил в комментариях, и мне кажется нелогичным. Потому что, как цена казино вычитается из цены кали –

Смежные вопросы