关系代数,尝试了一切,只是不知道如何做到这一点

时间:2016-01-07 15:13:24

标签: relational-database relational-algebra

给出了以下关系表/方案:

粗体是主键,斜体是外键:

- 城市(命名下,国家,人口)

-Venue(的 VID 下,容量,名称

-Concert(的 KID ID DID ,持续时间)

-Performer(的 ID KID ,年龄,姓名)

-Ticket(的 TID KID ,价格,类型)

现在我的任务是找到所有音乐会,其中有更多的VIP门票而不是其他门票。 VIP是票证中的属性类型。老实说,我已经想过这个问题了。我的主要想法是如何分组KID,类型,计数(*)(门票)并以某种方式添加类型!= VIP的门票并选择低于VIP门票的地方,但我只是不知道如何正式做到这一点..

1 个答案:

答案 0 :(得分:0)

这样的事情可行:

  SELECT CONCERT.NAME FROM CONCERT 
      INNER JOIN TICKET ON CONCERT.KID = TICKET.KID
  WHERE 
      (SELECT COUNT(CONCERT.KID) FROM CONCERT 
          INNER JOIN TICKET ON CONCERT.KID = TICKET.KID WHERE TYPE = 'VIP') >
      (SELECT COUNT(CONCERT.KID) FROM CONCERT 
          INNER JOIN TICKET ON CONCERT.KID = TICKET.KID WHERE TYPE != 'VIP')