LEFT JOIN报错:missing FROM-clause entry for table 'dailysteps'求助
错误原因解析
这个错误由两个关键问题导致:
大小写敏感的标识符引用错误
你的表创建时使用了带双引号的名称public."dailySteps"和public."dailyCalories",PostgreSQL对带双引号的标识符严格区分大小写。但你在ON子句中写的是public.dailySteps.ActivityDay(无引号),PostgreSQL会自动将其转换为小写public.dailysteps.activityday,与实际存在的大小写敏感的表名不匹配,因此数据库找不到对应的表。未使用表别名引用字段
你已经为两张表分别定义了别名ds和dc,但在关联条件里却用了完整的原表名。正确的做法是使用别名来引用字段,这既能避免标识符大小写问题,也让代码更简洁。
修正后的SQL代码
SELECT ds.id, ds.ActivityDay, ds.StepTotal, dc.id, dc.ActivityDay, dc.Calories FROM public."dailySteps" as ds LEFT JOIN public."dailyCalories" as dc ON ds.ActivityDay = dc.ActivityDay
内容的提问来源于stack exchange,提问作者Brandon Schultz
相关产品推荐
相关产品推荐

