SQL新手,但我希望能够通过提供适量的数据来优化我的查询。我正在CS Rep Name和WE上进行左连接,这两个表中都有两列。我发现如果我没有在TECDR表中引入CS Rep Name和WE,则查询会出错。这有解决方法吗?由于它是左连接,我不需要冗余数据。
SELECT *
FROM Tish_Email_CSAT_Dump AS TECD
LEFT JOIN (SELECT CS_Rep_Name,
Team_Leader,
Operations_Manager,
Tenure,
WE,
FileName
FROM Tish_Email_CSAT_Dump_Roster) AS TECDR
ON TECD.CS_Rep_Name = TECDR.CS_Rep_Name
AND TECD.WE = TECDR.WE
答案 0 :(得分:3)
当您在查询中嵌入SELECT
代替表时,select(投影)的结果就像只在查询中可见的表一样。
在您的情况下,连接与具有您选择的列的名为TECDR
的表相同。因此,如果您从Tish_Email_CSAT_Dump_Roster
中遗漏了SELECT
的某些列,则这些列将无法加入或选择。
但是,在您的情况下,这是不必要的:您需要做的就是加入基础表,如下所示:
SELECT
TECD.*
, TECDR.Team_Leader
, TECDR.Operations_Manager
, TECDR.Tenure
, TECDR.FileName
FROM Tish_Email_CSAT_Dump AS TECD
LEFT JOIN Tish_Email_CSAT_Dump_Roster AS TECDR
ON TECD.CS_Rep_Name = TECDR.CS_Rep_Name AND TECD.WE = TECDR.WE
答案 1 :(得分:2)
select
<place the columns you want here>
from
Tish_Email_CSAT_Dump as TECD
Left join Tish_Email_CSAT_Dump_Roster as TECDR
On TECD.CS_Rep_Name = TECDR.CS_Rep_Name and TECD.WE = TECDR.WE
答案 2 :(得分:1)
希望以下有用,否则请分享错误的查询:
选择TECD.Column1,TECD.Column2,TECDR.Column1,TECDR.Column2 从Tish_Email_CSAT_Dump作为TECD 左连接Tish_Email_CSAT_Dump_Roster作为TECDR 在TECD.CS_Rep_Name = TECDR.CS_Rep_Name和TECD.WE = TECDR.WE