mysql - 如何创建调用MySQL中存储函数的 View ?

标签 mysql stored-procedures

我创建了 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/

相关文章:

java - 从 Java 调用 PostgreSQL 函数

mysql - MyISAM Selects 锁仅在过程内部插入

mysql - 将 MySQL 错误消息翻译为新语言

mysql - Python 和 Mysql 查询问题 - 结果错误

php - 如何在PHP中的表上显示空行(当从数据库中选择时)

sql - 如何在哪个数据库中发现名称为 'myStoredProcedure' 的存储过程?

c# - 在 Visual Studio 中使用 SQL Server 存储过程

c# - Fluent NHibernate 映射一个返回动态列集的存储过程

php - 通过AJAX传递MYSQL回显图像ID

sql - 在存储过程中存储并使用选择语句结果?