You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL三表关联查询求助:查询Sally参与的赛事信息

修正后的PostgreSQL查询语句及错误说明

原SQL的错误点

  • 语法错误:出现两个FROM关键字,多表关联需在一个FROM后通过JOIN依次串联表,不能重复写FROM
  • 字符串常量使用错误:PostgreSQL中字符串值必须用单引号'包裹,双引号"用于引用表/字段名,原语句里的"Sally"会被解析为字段名而非字符串
  • 表名不匹配:你定义的是People表,但SQL里用了name N,应改为people N
  • 字段缺失:你要求输出EventName,但给出的Event表结构中没有该字段,若为笔误(比如实际要输出EventState)可对应替换;若确实存在EventName字段,请检查表结构描述是否遗漏
  • 重复关联同一张表:原语句两次关联Outcome表,会导致逻辑错误,只需通过一次关联串联三个表即可

修正后的查询语句(假设EventName为笔误,替换为EventState;若实际存在EventName字段,直接改回即可)

SELECT 
  e.eventstate AS eventname, -- 若Event表有eventname字段,直接写e.eventname
  EXTRACT(MONTH FROM e.eventdate) AS event_month,
  e.eventtemp,
  o.eventtime
FROM people n
JOIN outcome o ON n.id = o.id
JOIN event e ON o.eventid = e.eventid
WHERE n.name = 'Sally';

说明

  1. 三个表通过JOIN依次关联:先通过id关联People和Outcome,再通过eventid关联Outcome和Event
  2. 用AS给提取的月份字段起别名event_month,让结果更易读
  3. 字符串'Sally'用单引号包裹,符合PostgreSQL语法规范
  4. 表别名n(People)、o(Outcome)、e(Event)简化了字段引用

内容的提问来源于stack exchange,提问作者data_life

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:22:16