2017-04-11 7 views
1

loanofficerという名前の列には、そのローン責任者に対応する番号をリストした表名prequals_createdがあります。私はこの番号をappusersというテーブルにある番号の代わりにローンオフィサーの名前に変更したいと考えています。fullnameloanofficer idと一致しています。私は最初にSELECTを使用して、loan_pairingと呼ばれる「中間」テーブルを使用して、ローン担当者の名前とIDの表をペアとして生成することでこれを実行しようとしています。しかし、何か私の構文についてはオフです。ここに私のコードは次のとおりです。SELECT値を使用したUPDATE SQL列

UPDATE 
    prequals_created AS pc 
SET 
    pc.loanofficer = lonames.fullname 
FROM 
    (SELECT DISTINCT a.fullname, lp.loanofficer 
    FROM appusers AS a 
    JOIN loan_pairing AS lp 
     ON a.id = lp.loanofficer 
    JOIN prequals_created AS pc 
     ON lp.loanofficer = pc.loanofficer) AS lonames 
WHERE 
    pc.loanofficer = lonames.loanofficer 

FROM文の中でネストされたSELECTステートメントが正しいこと、およびそれぞれのIDとペア融資担当者の名前を返します。

ここでは私の構文についてはどういうことがありますか?

+0

欲しいものです、あなたのフルネーム列が配置されていますアパッシャで? –

+0

はい、それは(余分な文字) – Jodo1992

+1

私はloan_pairingテーブルdoes notはこの仕事を行うために特別な何かを保持しないと思う、つまり、appuserのIDはloanofficerとしてprequals_createdテーブルにあり、appsuserテーブル内にあるfullnameでloanofficerを置き換えたいと思う –

答えて

1

MySQLの複数テーブル更新ステートメントでは、結合はSETの前になります。私はこれがあなたのために働くべきだと思う:

UPDATE prequals_created AS pc 
     JOIN loan_pairing AS lp 
      ON lp.loanofficer = pc.loanofficer 
     JOIN appusers AS a 
      ON a.id = lp.loanofficer 
SET  pc.loanofficer = a.fullname; 
+0

ありがとう、これは素晴らしく、ちょうど必要でしたあなたの変更後にWHEREステートメントもインクルードする – Jodo1992

0
UPDATE 
    prequals_created AS pc 
SET 
    pc.loanofficer = lonames.fullname 
FROM 
    appusers AS a 
    JOIN 
    loan_pairing AS lp 
     ON a.id = lp.loanofficer 
    JOIN prequals_created AS pc 
     ON lp.loanofficer = pc.loanofficer 
; 
0

テーブルloan_pairingの参加不要を削除し、 クエリが効果的かつ効率的に、これはあなたが

UPDATE 
     pc 
    FROM appusers AS a 
     JOIN prequals_created AS pc 
      ON a.id = pc.loanofficer 
SET 
     pc.loanofficer = a.fullname 
関連する問題