2016-04-08 4 views
-3

Это база данных Firebird.Ошибка при подключении

Первая таблица

Контакты company_id - JOB_TITLE

Второй Таблица

CLIENT_ID - Co_name

В контактах, я хочу в JOB_TITLE поле содержит co_name.

client_id и company_id - это то же самое. Co_name соответствует company_id, а также client_id.

это:

UPDATE Contacts 
SET Contacts.Job_title = Clients.co_name 
WHERE 
    company_id IN (
     SELECT 
      client_id 
     FROM 
      clients 
     JOIN Contacts c ON Client_id = company_id 
     WHERE 
      record_status = 'A' 
    ) 

дает мне ошибку, как не могу найти (clients.co_name)

это другой вариант:

UPDATE Contacts 
JOIN Clients ON Clients.Client_id = Contacts.Client_id 
SET Contacts.Job_title = Clients.Client_name 

дает мне ошибку на РЕГИСТРИРУЙТЕСЬ

Любые другие идеи, пожалуйста?

Спасибо всем

+2

Возможные дубликат [Имя поля из идентификатора в таблице 1, но имя в другой таблице] (http://stackoverflow.com/questions/36473228/field-name-from-id-on-table-1-but-name-on-other -table) –

+3

, пожалуйста, не репостируйте - отредактируйте существующий вопрос. –

+1

Я бы все равно расширил его там и обсудил с человеком, представившим ответ. –

ответ

0

Возможно, уже ответил здесь: Update records in one table using another table's records as WHERE parameters - выглядит, как она должна работать, но я не Firebird эксперт.

код из этого ответа (но искать больше контекста, и альтернативные ответы):

UPDATE Table1 
SET Column1 = NULL 
WHERE NOT EXISTS 
    (SELECT 1 
    FROM Table2 
    WHERE Table2.Column2 = Table1.Column2) 

(не мог флаг вопрос как дубликат, потому что этот вопрос не имеет upvoted или принятый ответ)

+0

Спасибо pete, Job_title может содержать текст, но я не против перезаписывать его. –

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