sql - 如何将 SQL 查询转换为关系代数?

标签 sql sql-server database sql-server-2008 relational-algebra

假设有两个数据集:

User(id, name, phone)

Friend(id, fid)

fid是id-user的 friend 的id-user

为了找到 id=123 的所有 friend 的名字,我写了这个 SQL 查询:

SELECT name FROM user WHERE id = (SELECT fid FROM friend WHERE id = 123)

我想到了这个关系代数:

PROJECT name (SELECT uid =123 (Friend * User))

有什么改进/纠正的建议吗?

最佳答案

加入表格

SELECT u.name 
FROM user u
INNER JOIN Friend f ON u.ud = f.fid
WHERE f.id = 123

关于sql - 如何将 SQL 查询转换为关系代数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29120324/

相关文章:

database - 在 Cassandra 中获取每个组的最新条目

sql - 删除语句 - 子查询应该抛出错误

sql - 为每个用户选择最新条目,而不使用 group by (postgres)

sql - 如何在 SQL Server 中使用以下方法对数据进行 GROUP BY?缺口和岛屿

sql-server - 在 Visual Studio 和 SQL Server 中按架构名称比较架构

database - 将客户端-服务器应用程序开发为零售产品时应使用哪个数据库?

SQL Server 2008 R2 Express : way to convert NULL's from Joins to zeros

sql - SQL Server 中数字的通配符

sql-server - 可以忽略 DbUpdateConcurrencyException 吗?

php - 从嵌套数组中获取 SQL 列值