我创建了 2 个表。其中一个包含 5 个高尔夫球场(名称和地址)。另一个是每个高尔夫球场所有 18 洞的标准杆和码数(链接到球场的外键)。我创建了一个函数 getYards 来返回类(class)的码数。我创建了第二个函数 getPar,用于返回类(class)的总标准。这些都有效。我现在需要使用这两个函数创建一个 View 来显示类(class)名称以及标准杆和码数。 getYards 函数:
DELIMITER $$
CREATE FUNCTION getYards (id INT)
RETURNS INT (5)
BEGIN
DECLARE totalyards INT;
SELECT SUM(hole_yards) INTO totalyards FROM golf_holes WHERE id=golf_id;
RETURN totalyards;
END$$
DELIMITER ;
getPar 的函数非常相似,使用hole_par 而不是码。
现在我想使用 getPar 和 getYards 函数创建一个包含类(class)名称、标准杆和码数的 View 。我尝试过搜索,但我的知识不足以理解。我知道这很模糊,但是任何人都可以帮助我......保持简单!提前致谢。
我担任 cobol 程序员已近 40 年了。我正在尝试学习 MySQL,所以对 SQL 的了解很少。
最佳答案
如果您想保持简单,我不建议在 View 定义中使用存储函数。
您只需连接两个表即可。
这样的东西应该适合你:
create or replace view v_golf_courses as
select golf_courses.id as golf_course_id,
golf_courses.name as golf_course_name,
sum(golf_holes.yards) as course_yardage,
sum(golf_holes.par) as course_par
from golf_courses
inner join golf_holes on golf_holes.golf_course_id = golf_courses.id
group by golf_courses.id, golf_courses.name;
关于mysql - 如何创建调用MySQL中存储函数的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42119999/