mysql - 用简单的英语表达关于经济舱乘客、航类和旅行的关系微积分和代数查询

标签 mysql sql relational-database relational-algebra domain-calculus

我有这样的声明:

enter image description here

还有这个:

enter image description here

我该如何将这些内容转换为简单的英语?

这是我的理解范围:

对于第一个,我认为它正在选择存在 f_no1f_datef_no2p_id 航类行程 表已连接。

第二个令人困惑;我知道它在做什么,但我不知道如何将其转换为简单的英语。它很自然地连接旅行、航类和旅客表,然后从结果表中选择商务舱级别的行。然后,从舱位为商务舱的行中,仅选择最终目的地为洛杉矶的行,然后从这些行中选择乘客 ID 和姓名。所以我猜英文翻译应该是“获取前往洛杉矶商务舱乘客的姓名和身份证”,但我不确定。

最佳答案

关系演算

你走在正确的道路上。

  • 自由变量:p_id(确定您的输出结构)
  • 有界变量:f_no1f_no2f_date

您可以看到有两条线看起来非常相似,但差异很大。每行都将两个关系之间的信息配对,旨在找到满足条件的值。

请注意,两行中的 f_datep_id 变量相同,而 f_no 不同。这表明有两个不同的航类发生在同一天,并且两个航类都有同一位乘客。第一行表示从RapanuiPapeete的旅程,第二行表示从Papeete奥克兰的旅程。这两个旅程还必须满足乘坐经济舱的要求。

将这些信息放在一起,此查询询问 p_idp_idRapnui奥克兰 同一天经帕皮提,两人都乘坐经济舱。

关系代数

你几乎已经有了它。该查询选择乘坐商务舱飞往洛杉矶的所有乘客的 p_id 和 p_name。

关于mysql - 用简单的英语表达关于经济舱乘客、航类和旅行的关系微积分和代数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22825681/

相关文章:

java - 错误 : org. hibernate.util.JDBCExceptionReporter - 无法加载 JDBC 驱动程序类 'com.mysql.jdbcDriver'

c# - 使用 NOW() 函数调用的参数化查询

sql - 多表连接查询的最佳实践

mysql - 当没有匹配项时,CASE 语句将我的所有值更新为 NULL?

ruby - 我需要从查询结果中获取用户 ID

mysql - SQL:如果用户没有为属性定义任何数据类型或将所有数据类型保留为 varchar 怎么办?

mongodb - 搜索实现 : ElasticSearch vs MongoDB vs Relational Database

php mysql 按给定参数计算、求和和分组

mysql - 选择一行时增加一个值 SQL

php - 撤消用户创建,写入数据库