如何让下面的SQL语句工作并在拾取一个字符串时返回联接?

如何让下面的SQL语句工作并在拾取一个字符串时返回联接?,sql,Sql,我有两个表,A和B。表A有一个id和一个字符串,表B有一个指向A中id和数字(浮点)的指针 我想从表B中选择所有内容,将数字平均为表A中的group by id,同时显示表A中的字符串 这不起作用: select a.id,b.id,avg(num),str from a,b where a.id=b.id; 它给了我一个关于分组str的错误。每当使用聚合函数(如avg())时,都必须对尚未分组的结果进行分组 SELECT a.id, b.id, avg(num), a.str FROM a

我有两个表,A和B。表A有一个id和一个字符串,表B有一个指向A中id和数字(浮点)的指针

我想从表B中选择所有内容,将数字平均为表A中的group by id,同时显示表A中的字符串

这不起作用:

 select a.id,b.id,avg(num),str from a,b where a.id=b.id;

它给了我一个关于分组str的错误。

每当使用聚合函数(如avg())时,都必须对尚未分组的结果进行分组

SELECT a.id, b.id, avg(num), a.str FROM a, b WHERE a.id = b.id
GROUP BY a.id, b.id, a.str;
基本上就是这样。除此之外,您还需要澄清“str”来自哪个表。是a还是b?
(答案根据注释更新。)

使用
groupby
子句使用聚合函数,您必须使用
groupby

select a.id,b.id,avg(num),a.str from a,b where a.id=b.id group by a.id

希望能有所帮助。

您使用的是哪种DBMS?您应该展示一些示例输入和输出,因为您的问题可能会有解释。SQL中的指针是什么?你是说外键吗?和-1用于描述错误而不显示确切的错误消息。str来自表A。这仍然会导致相同的错误,因为其他列不属于该组。