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

SQL表继承场景下关联User的Student、Lecture表增查语句求助

插入数据操作

因为你用的是类表继承的实现方式,子表的UserID依赖父表User的主键,所以必须先插入父表记录,再插入对应子表记录,父表的type字段可以用来标记用户类型,比如约定1=学生、2=讲师,避免数据混乱。

插入学生记录示例

-- 先插入User父表
INSERT INTO User (UserID, Name, type) VALUES (1, '张三', 1);
-- 再插入Student子表,UserID要和父表一致
INSERT INTO Student (UserID, marks) VALUES (1, 92);

插入讲师记录示例

-- 先插入User父表
INSERT INTO User (UserID, Name, type) VALUES (2, '王教授', 2);
-- 再插入Lecture子表,UserID要和父表一致
INSERT INTO Lecture (UserID, salary) VALUES (2, 15000);

提示:如果你的数据库把User识别为保留关键字,表名需要用反引号包裹,例如 INSERT INTO `User` (...)


查询数据操作

查询所有学生的完整信息

SELECT u.UserID, u.Name, s.marks
FROM User u
INNER JOIN Student s ON u.UserID = s.UserID
WHERE u.type = 1;

查询所有讲师的完整信息

SELECT u.UserID, u.Name, l.salary
FROM User u
INNER JOIN Lecture l ON u.UserID = l.UserID
WHERE u.type = 2;

同时查询所有用户(区分类型展示对应字段)

SELECT
  u.UserID,
  u.Name,
  CASE u.type WHEN 1 THEN '学生' WHEN 2 THEN '讲师' END AS 身份,
  s.marks AS 学生成绩,
  l.salary AS 讲师薪资
FROM User u
LEFT JOIN Student s ON u.UserID = s.UserID
LEFT JOIN Lecture l ON u.UserID = l.UserID;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:54:02