peixue-dev/Archive/peidu-temp-files/docs/✅SQL字段错误已修复-2026-01-23.md

3.6 KiB
Raw Blame History

SQL字段错误已修复

修复时间: 2026-01-23
问题: Unknown column 's.name' in 'field list'
状态: 已修复


🔍 问题分析

错误信息

Unknown column 's.name' in 'field list'

根本原因

ReviewMapper.java 中的 SQL 查询使用了错误的字段名:

  • 错误: s.name as student_name
  • 正确: s.student_name

student 表中的字段是 student_name,不是 name


修复内容

修复的SQL查询3处

文件: peidu/backend/src/main/java/com/peidu/mapper/ReviewMapper.java

1. getReviewDetail() 方法

// ❌ 错误
"s.name as student_name " +

// ✅ 正确
"s.student_name " +

2. getUserReviewList() 方法

// ❌ 错误
"s.name as student_name " +

// ✅ 正确
"s.student_name " +

3. getTeacherReviewList() 方法

// ❌ 错误
"s.name as student_name " +

// ✅ 正确
"s.student_name " +

📊 student 表字段说明

正确的字段名

-- student 表结构
CREATE TABLE student (
    id BIGINT PRIMARY KEY,
    student_name VARCHAR(50),  -- ✅ 正确字段名
    age INT,
    gender VARCHAR(10),
    ...
);

常见错误

  • s.name - 字段不存在
  • s.student_name - 正确字段名

🔧 完整的SQL查询

查询用户评价列表

SELECT r.*, 
       o.order_no, 
       o.service_name, 
       o.service_date, 
       t.teacher_name, 
       s.student_name          -- ✅ 使用正确字段名
FROM review r 
LEFT JOIN `order` o ON r.order_id = o.id 
LEFT JOIN teacher t ON r.teacher_id = t.id 
LEFT JOIN student s ON r.student_id = s.id 
WHERE r.user_id = ? AND r.deleted = 0 
ORDER BY r.create_time DESC

验证修复

1. 重新编译后端

cd peidu/backend
mvn clean compile

2. 重启后端服务

如果后端正在运行,需要重启:

# 停止后端
# 重新启动后端

3. 测试评价列表

  1. 刷新微信开发者工具
  2. 登录家长账号
  3. 进入"个人中心"
  4. 点击"我的评价"

预期结果:

  • 评价列表正常加载
  • 显示学生姓名
  • 显示陪伴员姓名
  • 显示服务信息

🧪 测试SQL

直接在数据库中测试

USE peixue;

-- 测试查询用户评价列表
SELECT r.*, 
       o.order_no, 
       o.service_name, 
       o.service_date, 
       t.teacher_name, 
       s.student_name
FROM review r 
LEFT JOIN `order` o ON r.order_id = o.id 
LEFT JOIN teacher t ON r.teacher_id = t.id 
LEFT JOIN student s ON r.student_id = s.id 
WHERE r.user_id = 1 AND r.deleted = 0 
ORDER BY r.create_time DESC;

预期结果:

  • 查询成功,无错误
  • 返回评价记录
  • student_name 字段有值

📋 相关表字段对照

表名 姓名字段 说明
user nickname 用户昵称
teacher teacher_name 陪伴员姓名
student student_name 学生姓名
service service_name 服务名称

🚀 下一步操作

1. 重新编译

cd peidu/backend
mvn clean compile

2. 重启后端服务

# 如果使用IDE重启Spring Boot应用
# 如果使用命令行,重新运行 java -jar ...

3. 测试功能

  1. 刷新微信开发者工具
  2. 测试"我的评价"列表
  3. 确认数据正常显示

修复完成

SQL字段错误已修复现在可以正常查询评价列表了

立即执行:

cd peidu/backend
mvn clean compile

然后重启后端服务,刷新前端测试。


问题已解决!🎉