Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 这个关系代数语句做什么?(转换为SQL查询)_Mysql_Sql_Relational Database - Fatal编程技术网

Mysql 这个关系代数语句做什么?(转换为SQL查询)

Mysql 这个关系代数语句做什么?(转换为SQL查询),mysql,sql,relational-database,Mysql,Sql,Relational Database,我正在尝试将关系代数转换为SQL查询: ρ(R1, ΠroomId((ΠguestIdσage<35Guest) Natural Join Reservation)) ρ(R2, ΠroomIdσprice≤100∨numberOfBeds>2Room) R1 ∧ R2 我知道它将第二部分的输出重命名为R1和R2,然后执行R1和R2 然而,我的困惑是从关系代数转换到查询 是否有人可以帮助或提供一些关于如何做到这一点的见解?第一句话是从年龄小于35岁的所有记录中选择,只突出guest

我正在尝试将关系代数转换为SQL查询:

ρ(R1, ΠroomId((ΠguestIdσage<35Guest) Natural Join Reservation))
ρ(R2, ΠroomIdσprice≤100∨numberOfBeds>2Room)
R1 ∧ R2
我知道它将第二部分的输出重命名为R1和R2,然后执行R1和R2

然而,我的困惑是从关系代数转换到查询

是否有人可以帮助或提供一些关于如何做到这一点的见解?

第一句话是从年龄小于35岁的所有记录中选择,只突出guestId列

然后,这个结果关系自然地与另一个表保留联接,将结果投影到roomId上并调用结果R1

第二个语句是从Relationship Room中选择所有price低于或等于100或超过2张床位的行,使用roomId投影结果,并调用第二个结果R2

如果我读对了,它到SQL的翻译应该是这样的:

SELECT roomId AS R1
FROM (
    SELECT guestId 
    FROM Guest
    WHERE age < 35 
) AS YoungGuests NATURAL JOIN Reservation
WHERE roomId IN (
    SELECT roomId AS R2
    FROM Room
    WHERE price <= 100 OR numberOfBeds > 2
);

我们的想法是选择所有为35岁以下的客人保留的房间,这些房间至少有两张床或价格低于100。这是一个包含一些虚拟数据的工作示例。

您能解释一下工会的来源吗?“^”不是应该是AND吗?我确实尝试过这个查询,但它产生的翻译并不正确errors@RandomMath已修复,此版本应按您的需要工作。