我有一个非常简单的MS Access用户表(USER_TABLE),包含3个字段:Customer_Number
,User_Name
和Email_Address
。我有另一个表(NEW_USERS),包含对用户的新请求。它的User_Status
字段默认为空,并且还包含Customer_Number
,User_Name
和Email_Address
字段。
通过的新请求中有一半是已存在的用户,因此我想设置一个查询,检查USER_TABLE以确定是否存在新请求,使用Email_Address字段和Customer_Number字段。使这一点复杂化的事实是:1)Customer_Number不是唯一的(对于单个客户编号存在许多用户)和2)用户可以具有针对不同客户编号的多个帐户。在检查USER_TABLE时,这会导致NEW_USERS表中的4个场景:
我想要做的是运行这些检查并在User_Status字段中输入相应的结果(New,Existing,New-Multi或Existing-Multi)。
这似乎是可能的。是否可以运行4个单独的查询来更新NEW_USERS.User_Status?
答案 0 :(得分:0)
当您在Access中工作时,您确实需要一个唯一标识每条记录的字段。至少,某些领域的组合,如customerid和电子邮件。
除此之外,由于您有一些要满足的标准,最简单的方法可能是制作一个select语句,用于比较多个select语句的结果之间的数据。查看外部联接以从一个表中选择在另一个表中找不到的结果。像 -
这样的东西insert into user_table select customerid, email_address from
(select customerid, email_address from new_users inner join user_table on ...) as expr1,
(select customerid, email_address from new_users outer join user_table on ...) as expr2
where expr1.customerid = expr2.customerid and expr1.new_users = expr2.new_users
我建议在sql上尝试免费的stanford课程,这是一个关于嵌套select语句的简单教训 - 这是获得符合许多标准的结果的好方法。 http://class2go.stanford.edu/
顺便说一下,他们使用“在where where claus中指定连接”的语法做了很多,这种语法越来越不受欢迎,但更容易理解。