这些是动物的table
(ID: int, Name: varchar(15), PrevOwner: varchar(15), DateAdmitted: date, Type: varchar(15))
采用者
(SIN: int, Name: varchar(15), Address: varchar(15), OtherAnimals: int)
采用
(AnimalID: int, SIN: int, AdoptDate: date, chipNo: int)
我想列出领养超过3只动物的领养者的名字
此查询提供错误:
select distinct Name
from Adopter, Adoption
where Adoption.SIN = Adopter.SIN
GROUP BY Adoption.SIN
Having count(SIN) > 3;
111
3条答案
按热度按时间qhhrdooz1#
你不应该那样加入。。。连接的语法已经有20多年的历史了。使用新语法
如果你想要名字,你必须按名字分组。
这样地:
bt1cpqcv2#
我在这个exmaple中也为您创建了一些测试数据。
sql小提琴
你需要的是分组
Name
```select Name
from Adopter adtr
left join Adoption adtn
on adtr.SIN = adtn.SIN
group by Name
having count(adtn.SIN) > 3
having count(adtn.SIN) > 3
7eumitmz3#
您必须通知中表的名称
HAVING
因为“sin”一栏模棱两可试试这个: