关系代数查询

时间:2011-10-03 04:24:29

标签: database relational-algebra

我坚持下面的查询,我需要从不同的表中列出两个属性。是否有更简单的方法来编写上述查询?

Tables:
Patient (PatientID, FamilyName, GivenName,Address) 
Item (ItemNo, Info, Fee)
Account (AccountNo, PatientID, Date)
AccountLine (AccountNo, ItemNo)

列出任何名为John Wayne的患者的项目信息和所有治疗的日期:

Select FamilyName =” Wayne” and GivenName=”John” (Patient)> Temp1
        Temp1*Temp1.PatientID = Account.PatientID (Account) > Temp2

 - Updated

Temp2*Temp2.AccountNo = AccountLine.AccountNo (Temp2 X Account) >Temp3
Temp3*Temp3.ItemNo = Item.ItemNo (Temp3x Item) > Temp4
Select Description, Date(Temp4)

Join Answer 
Select Description, Date (Restrict FamilyName =” Wayne” and GivenName=”John” (Patient) Join Account Join Item Join AccountLine)

1 个答案:

答案 0 :(得分:1)

看起来非常像[homework],所以我只提供提示......

您可以从联系中选择,而不是从表格中进行选择 具体而言,PatientAccount表的自然连接将允许查找与John Wayne关联的所有AccountNo和Date值。
类似地,另一个连接将在给定AccountNo的情况下找到项目信息 并且由于连接可以与另一个连接(假设没有冲突),似乎我几乎解决了它...