8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

SQL 从内连接更新

tmdavison 2月前

31 0

我正在使用 Microsoft Access。如果此查询: (SELECT FERMENT.FermentIdFROM FERMENTINNER JOIN [BELGIUM BEER]ONFERMENT.FermentName = [BELGIUM BEER].FermentId ORDER BY [BELGIUM BEER].BeerId) a r...

我正在使用微软 Access。

如果有这个查询:

(SELECT FERMENT.FermentId
FROM FERMENT
INNER JOIN [BELGIUM BEER]
ON
FERMENT.FermentName = [BELGIUM BEER].FermentId ORDER BY [BELGIUM BEER].BeerId) a

返回 FermentId,如何使用该列更新不同的表?

例子:

UPDATE EXAMPLETABLE
SET EXAMPLETABLE.FermentId = a.FermentId
FROM a
(SELECT FERMENT.FermentId
FROM FERMENT
INNER JOIN [BELGIUM BEER]
ON
FERMENT.FermentName = [BELGIUM BEER].FermentId ORDER BY [BELGIUM BEER].BeerId) a
帖子版权声明 1、本帖标题:SQL 从内连接更新
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由tmdavison在本站《ms-access》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 假设子查询返回多个值,则需要第二个键来连接(JOIN)新值和要更新的表(EXAMPLETABLE)。

    在这种情况下我会尝试这样的事情:

    UPDATE T 
    SET    T.FERMENTID = A.FERMENTID 
    FROM   EXAMPLETABLE AS T 
           INNER JOIN (SELECT FERMENT.FERMENTID, 
                              FERMENT.OTHERID 
                       FROM   FERMENT 
                              INNER JOIN [BELGIUM BEER] 
                                      ON FERMENT.FERMENTNAME = 
                                         [BELGIUM BEER].FERMENTID 
                       ORDER  BY [BELGIUM BEER].BEERID) AS A 
                   ON A.OTHERID = T.OTHERID 
    

    如果不是这种情况并且子查询返回单个值,请尝试如下操作:

    UPDATE EXAMPLETABLE 
    SET    T.FERMENTID = (SELECT FERMENT.FERMENTID
                          FROM   FERMENT 
                                 INNER JOIN [BELGIUM BEER] 
                                         ON FERMENT.FERMENTNAME = 
                                            [BELGIUM BEER].FERMENTID 
                          ORDER  BY [BELGIUM BEER].BEERID)
    

    请注意,在这种情况下,您需要保证子查询永远不会返回多行!

返回
作者最近主题: