2015-11-10 5 views
0

Учитывая следующие две таблицы в базе данных PostgreSQL ...Как обновить столбец в одной таблице на основе значений из второй таблицы?

observation Таблица:

+---------------+---------+ 
| observationid | deleted | 
+---------------+---------+ 
|  1  | F | 
|  2  | F | 
|  3  | F | 
+---------------+---------+ 

Таблица numericvalue:

+---------------+-------+ 
| observationid | value | 
+---------------+-------+ 
|  1  | 999 | 
|  2  | 5 | 
|  3  | 999 | 
+---------------+-------+ 

Я хочу, чтобы установить значение столбца deleted для 'T' в все строки в observation всякий раз, когда соответствующая строка в numericvalue содержит value, равную 999.

SELECT запрос выглядит следующим образом:

SELECT * 
FROM observation o 
INNER JOIN numericvalue n 
ON o.observationid = n.observationid 
AND n.value = 999; 

ответ

1
UPDATE observation ob 
SET deleted = 'T' 
FROM numericvalue nv 
WHERE nv.value = 999 
AND nv.observationid = ob.observationid; 
0
UPDATE observation 
SET deleted = 'T' 
WHERE observationid IN (SELECT observationid FROM numericvalue WHERE value=999) 

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

  • Нет связанных вопросов^_^