我有一个数据库作业,我必须为两个问题创建一些关系代数。我对其中的大部分感觉还不错,但当我尝试从连接到另一个表的表中投影属性时,我只是感到困惑。
例如,这是正确的吗?
Q1) 列出没有调用电话的事件的详细信息,以便接待员知道 哪些事件仍需要调用。
RESULT <-- PROJECT<STUDENT.FirstName, STUDENT.LastName, STAFF.FirstName,
STAFF.INCIDENT.LastName, INCIDENT.DateTimeReported,
INCIDENT.NatureOfIllness(SELECTINCIDENT.DecisionMade =
''(Staff RIGHT JOIN<STAFF.StaffID = INCIDENT.StaffID>
(INCIDENT LEFT JOIN<INCIDENT.StudentID = STUDENT.StudentID>(STUDENT))))
我试图解释为关系代数的 SQL 是:
SELECT
s.FirstName, s.LastName, st.FirstName, st.LastName
, i.DateTimeReported, i.NatureOfIllness
FROM Student s
RIGHT JOIN Incident i ON s.StudentID = i.StudentID
LEFT JOIN Staff st ON st.StaffID = i.StaffID
WHERE i.DecisionMade = ''
如有任何建议,我们将不胜感激。
最佳答案
如果全部使用 LEFT JOIN 编写,通常(当然也有一些异常(exception))更容易阅读和理解 sql:
SELECT s.FirstName, s.LastName, st.FirstName, st.LastName, i.DateTimeReported, i.NatureOfIllness
FROM Incident i
LEFT JOIN Student s ON s.StudentID = i.StudentID
LEFT JOIN Staff st ON st.StaffID = i.StaffID
WHERE i.DecisionMade = ''
关于database - 我的关系代数正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/418186/