2016-04-08 6 views
-3

これはFirebirdデータベースです。JOINにエラーがあります

まず表

コンタクト のcompany_id - のjob_title

第二表

CLIENT_ID - Co_name

連絡先では、私はco_nameを含むとのjob_title場にしたいです。

client_idとcompany_idは同じです。 Co_nameは、company_idおよびclient_idに対応します。

この:(clients.co_name)を見つけることができないよう

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' 
    ) 

は私にエラーを与える

この他のオプション:

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

は私に登録しよう

にエラーが発生します他のアイデアをお願いしますか?

はすでにここに答えおそらく、あなたのすべての

+2

可能性のある(ないフラグその質問が何upvotedまたは受け入れ答えを持っていないので、重複するなどの問題があります) [テーブル1のIDからのフィールド名、他のテーブルの名前]の複製(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) 

+0

ありがとうございます、私はJob_titleにテキストが含まれているかもしれませんが、上書きは気にしません.. –

関連する問題