使用SELECT值更新SQL列

时间:2017-04-11 16:17:55

标签: mysql sql database relational-database

我在表名loanofficer中有一个名为prequals_created的列,列出了与该贷款人员相对应的数字。我想更新此列以获得贷款人员姓名而不是号码,该​​号码位于名为appusers的表格中,其中fullnameloanofficer ID匹配。我试图通过首先使用SELECT生成一个贷款人员姓名表和id作为一对,使用名为loan_pairing的“中间”表来完成此操作。但是,关于我的语法有些不对劲。这是我的代码:

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配对的贷款人员的姓名。

我的语法到底是什么原因?

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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
;

答案 2 :(得分:0)

删除表 loan_pairing 的不必要的连接,并使您的查询有效且高效 这就是你想要的

webpack-dev-server --config config/webpack.config.js --port 80

loader option has been deprecated - replace with "use"
events.js:163
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 127.0.0.1:80
    at Object.exports._errnoException (util.js:1034:11)
    at exports._exceptionWithHostPort (util.js:1057:20)
    at Server._listen2 (net.js:1257:19)
    at listen (net.js:1306:10)
    at doListening (net.js:1421:7)
    at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:10)
相关问题