MS Access更新查询和带有字符串参数的内部联接

时间:2018-10-07 06:03:31

标签: sql ms-access

请帮助我解决MS Access中的此问题。我想使用将在user table中获得的statusid更新我的userstatus table

此查询在MySQL中正常工作。为什么在MS Access中没有。具有字符串参数的内部联接不起作用。

UPDATE tbl_users AS us
  INNER JOIN tbl_userstatus AS ust ON ust.status = "Offline"  
SET us.statusid =  ust.statusid 
WHERE us.username = "francis";

2 个答案:

答案 0 :(得分:2)

在MS Access中,您可以尝试:

UPDATE tbl_users AS us,   -- MS Access does not support explicit CROSS JOIN
       tbl_userstatus AS ust
    SET us.statusid =  ust.statusid 
    WHERE us.username = "francis" AND ust.status = "Offline";

在任何一个数据库中,您都可以使用:

UPDATE tbl_users
    SET statusid =  (SELECT ust.statusid FROM tbl_userstatus AS ust ON ust.status = "Offline")
    WHERE username = "francis";

这完全不一样。但是我假设tbl_userstatus的“脱机”行只有一行-在这种情况下,它们是等效的。

答案 1 :(得分:0)

尝试如下操作,假设statusid是两个表之间的联接列,并猜测您要使用列{{1}的数据status更新用户表的tbl_userstatus列}

status