我有table:
Product(code (PK), pname, (....), sid (FK)),
Supplier(sid(PK), sname, (....))
任务是:
寻找只供应一种产品的供应商。显示他们的名字( sname
)产品名称( pname
).
在我看来,这就像 GROUP BY
问题,所以我用了:
SELECT sid FROM
Product GROUP BY sid
HAVING CAST(COUNT(*) AS INTEGER) = 1;
此查询已找到 sid
它只提供一种产品,但现在我遇到了一个问题:
赋值禁止任何形式的嵌套 SELECT
查询。
我编写的查询结果只有一列(这个 sid
(列)
因此,我无法访问产品名称,因为它不在查询结果表中,如果我将它添加到 GROUP BY
语句,则分组也将基于产品名称,这是不需要的行为。
那么,我该如何处理这个问题呢?
注意:我使用postgresql
2条答案
按热度按时间z18hc3ub1#
您可以将查询短语为:
你不需要改变信仰
COUNT(*)
一个整数。它已经是一个整数了。gcmastyq2#
你可以把
在
SELECT
列表。这是一个集合,所以可以。