我有两张表作者和论文。如何找到有三位或更多作者的论文?我试过用
select distinct acnum,panum from author Where acnum >3 order by acnum;
和
select p.panum,p.title from paper p Join author a on a.panum = p.panum Group by p.panum,p.title Having count(a.acnum) >3;
我做错了吗?作者与论文的关系是论文编号。
你在评论中说:
i used select p.panum,p.title from paper p Join author a on a.panum = p.panum Group by p.panum,p.title Having count(a.acnum) >3
让我们假设您使用的是确切的查询。你没有在选择中做COUNT
,但使用HAVING
。 HAVING
分析了应该在select中的聚合,但没有。你只需要在选择中放一个COUNT
:
SELECT p.panum
,p.title
,COUNT(*) as "thecount"
FROM paper P INNER JOIN author a ON a.pnum = p.panum
GROUP BY p.panum
,p.title
HAVING COUNT(*) >= 3
您必须在问题中更好地指定字段和表格,但通常您必须按作者进行分组并设置具有计数的条件。就像是
SELECT * FROM paper JOIN author ON author ....
GROUP BY author
HAVING COUNT(*) > 3