2010-07-16 3 views
2

Я две таблицы:Обновить набор столбцов с критериями, основанными на другой таблице?

table_1 - ControlID, код, ReportedDate, FiledDate Возраст, AgeCategory и т.д.,

table_2 - ControlID, код, ReportedDate, FiledDate и т.д.,

ControlID в table_1 является Внешний ключ тогда не table_2. Мне нужно обновить ReportedDate в таблице_1 с помощью ReportedDate в таблице_2, а Age и AgeCatogory рассчитаны и точны.

Я хочу обновить эти три столбца в таблице_1, где идентификаторы ControlID, FiledDate и Code идентичны.

Сейчас далеко я:

UPDATE table_1 SET ReportedDate=table_2.ReportedDate, Age='<value>' AgeCategory='<value>' 
     WHERE table_1.ControlID=table_2.ControlID AND 
     table_1.FiledDate=table_2.FiledDate AND table_1.Code=table_2.Code 

Если кто-нибудь имеет представление о том, как он может быть решен ???

Anyhelp будут оценены ...

EDIT:

Я получаю сообщение об ошибке говорящее ошибка MySQL Синтаксис на 'FROM ...'

+0

Что именно проблема? Обновлены ли неверные данные? Есть ли ошибка в вашем SQL? Пожалуйста, будьте более краткими. –

ответ

0
UPDATE table_1 
    JOIN table_2 
    ON table_1.ControlID=table_2.ControlID 
     AND table_1.FiledDate=table_2.FiledDate 
     AND table_1.Code=table_2.Code 
    SET table_1.ReportedDate=table_2.ReportedDate, 
     table_1.Age='<value>', 
     table_1.AgeCategory='<value>'; 
0

Там будет не FROM разрешено в UPDATE синтаксисом 1:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name 
    SET col_name1=expr1 [, col_name2=expr2 ...] 
    [WHERE where_condition] 
    [ORDER BY ...] 
    [LIMIT row_count] 

Если вы хотите получать контент со второй таблицы , вы можете использовать подзапрос.

Попробуйте этот код:

UPDATE table_1 SET ReportedDate= 
    (SELECT ReportedDate FROM table_2 
     WHERE table_1.ControlID = table_2.ControlID 
     AND table_1.Code = table_2.Code 
    ), Age='<value>' AgeCategory='<value>' 
+0

Thanx, я нашел это для этой же проблемы в нашем «SO». Я изменил запрос. Произошла та же ошибка. Могу ли я помочь мне исправить это? Могу ли я определить, каким образом я должен его изменить? – Venkat

+0

Я только что добавил код. Я не уверен, погода работает, но это то, что я могу попробовать. – JochenJung

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