所以我试图将两个表连接在一起,我有Artist
表和我的CD
表。我的CD
表包含许多CD Entrys,包括CD.cdID
,CD.artID
,CD.cdTitle
,CD.cdPrice
和CD.cdGenre
。我的Artist
表包含Artist.artID
,Artist.artName
。我正在尝试返回在CD
表中所有CD的平均价格最高的Artist.artName。
到目前为止,这是我的代码。到目前为止,它将最高平均CD价格提高了CD.artID
,但我不知道如何将其合并,以便我可以显示Artist.artName
名称,而不是CD.artID
:
SELECT AVG(cdPrice) as cdPrice, artID
FROM CD
GROUP BY artID
HAVING AVG(cdPrice) = (SELECT MAX(cdPrice) FROM
(SELECT AVG(cdPrice) as cdPrice FROM CD GROUP BY artID) A)
我通过PhpMyAdmin使用MySQL。
答案 0 :(得分:3)
您可以在加入表后使用GROUP BY
- 适用相同的规则,即必须对所有非聚合列进行分组。要仅查找最高平均值的艺术家,您可以使用简单的ORDER和LIMIT:
SELECT AVG(cd.cdPrice) as avgPrice, a.artName
FROM CD cd INNER JOIN Artist a
on cd.artID = a.artID
GROUP BY a.artName
ORDER BY avgPrice DESC
LIMIT 1;