我在表名loanofficer
中有一个名为prequals_created
的列,列出了与该贷款人员相对应的数字。我想更新此列以获得贷款人员姓名而不是号码,该号码位于名为appusers
的表格中,其中fullname
与loanofficer
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配对的贷款人员的姓名。
我的语法到底是什么原因?
答案 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)