查询每个元素

时间:2016-01-21 05:50:59

标签: sql

我获得了以下数据库架构

donuts (name: string, price: integer) 
grocery (no: string, gname: string, minCredit: integer) 
distributor (dname: string, gno: string, purchaseYear: integer)

对于每年(distributor.purchaseYear),杂货店“VONS”购买至少一个甜甜圈,找到购买的甜甜圈数量。输出是元组的集合,表示由“VONS”

购买的年份和甜甜圈数量

我不知道如何处理这个问题。我试过了

 SELECT (d.purchaseYear, COUNT(dd.name))
 FROM distributor d, donut dd, grocery g
 WHERE g.name = "VONS"

这似乎给了我不正确的输出。

2 个答案:

答案 0 :(得分:1)

假设你有一个如下的架构

donuts (gname: string, price: integer, purchaseYear: integer) // record for every donut purchased by the grocery gname in the year
grocery (gno: string, gname: string, minCredit: integer)  // grocery details
distributor (dname: string, gno: string, purchaseYear: integer) // distributor details 

您可以使用以下查询获取数据

select 
        g.name
      , d.purchaseyear
      , count(do.gname)
from distributor d
join grocery g on g.gno = d.gno
join donuts do on do.gname = g.gname
where g.name = 'VONS'
group by g.name, d.purchaseyear

答案 1 :(得分:0)

如果您使用完全分离的表,则无效。请考虑使用foreign keysjoins从不同的表中获取信息,但相互关联on一个或多个特定字段。