为什么此查询不会使用查找更新字段?



我正在尝试运行以下查询以从另一个表更新一个表。日期和电子邮件地址可以工作并携带,但我用于从引用表中获取Subject_1的嵌套查询不起作用。我做错了什么?

 SELECT
    FirstRegistered As SignUpdate,
    (SELECT Subj_ClusName FROM tblSubjectLookup INNER JOIN PAD_ApplicantLost2000 ON tblSubjectLookup.Subj_Name=PAD_ApplicantLost2000.raw_subj_interest_1) AS Subject_1,
    Email_Address
 FROM PAD_ApplicantLost2000

PAD_ApplicantLost2000,起源表有一个"原始主题"列,其中包含例如"生物学"。还有另一个表,tblSubjectLookup,它有所有科目的代码,所以 Subj.Name 有"生物学","Subj_ClusName"有"B1",这是我的目标表中需要的。但是,不会填充目标表中的Subject_1字段。

我做错了什么?

为什么不直接使用 WHERE 子句而不是再次加入表。我还添加了LIMIT 1以确保只返回 1 个值。

SELECT
  FirstRegistered As SignUpdate,
  (SELECT Subj_ClusName FROM tblSubjectLookup WHERE tblSubjectLookup.Subj_Name = PAD_ApplicantLost2000.raw_subj_interest_1 LIMIT 1) AS Subject_1,
  Email_Address
FROM PAD_ApplicantLost2000

另一种可能更好的方法是直接加入表。

SELECT
  FirstRegistered As SignUpdate,
  Subj_ClusName AS Subject_1,
  Email_Address
FROM PAD_ApplicantLost2000
LEFT JOIN tblSubjectLookup ON tblSubjectLookup.Subj_Name = PAD_ApplicantLost2000.raw_subj_interest_1

最新更新