CREATE PROCEDURE Proc_Selesno ( VARIABLE student_id INT ) BEGIN SELECT s.*, c.Cname, sc.grade FROM S s INNER JOIN SC sc ON s.sno = sc.sno INNER JOIN C c ON sc.cno = c.cno WHERE s.sno = student_id; END
时间: 2024-03-23 16:41:47 浏览: 62
S3C2410_Linux_2.6.35.7_kernel启动分析2.doc
很抱歉,MySQL 不支持使用 "VARIABLE" 声明量。在 MySQL 中,该使用 "IN" 关键字来声明输入参数。
以下是修改后的代码:
```
CREATE PROCEDURE Proc_Selesno (
IN student_id INT
)
BEGIN
SELECT s.*, c.course_name, sc.grade
FROM S s
INNER JOIN SC sc ON s.sno = sc.sno
INNER JOIN C c ON sc.cno = c.cno
WHERE s.sno = student_id;
END
```
这个代码应该可以在 MySQL 中执行,它创建了一个名为 Proc_Selesno 的储存过程,接受一个名为 student_id 的输入参数,并使用 INNER JOIN 连接 S、C 和 SC 表,以返回特定学生的信息和选课情况。
要执行此储存过程,请使用以下代码:
```
CALL Proc_Selesno(12345);
```
请将 12345 替换为您要查询的学生的实际 ID 值。
希望这次能够帮助您!
阅读全文