我正在尝试运行以下查询以从另一个表更新一个表。日期和电子邮件地址可以工作并携带,但我用于从引用表中获取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