繁体   English   中英

连接表以查找对应的列SQL

[英]Joining tables to find corresponding columns SQL

所以我想找到平均价格最高的流派,我这样做是这样的:

SELECT MAX(MostExpensive) as HighestPrice, cdTitle
FROM (
    SELECT AVG(cdPrice) AS MostExpensive, cdTitle
    FROM `cd` GROUP BY cdGenre
) AS MostExpensiveAlbum

但是,我很快意识到我也需要获得艺术家的名字。 我可以轻松地将列添加到SELECT语句中,但是它发生的原因是艺术家名称列在另一个表中。

我如何才能与桌artist一起从我当前正在选择的这张cdJOIN cd ,并获得artName列,使其与最高价格相对应。

简而言之,我想找到平均价格最高的歌手姓名

这是我的两张桌子: 在此处输入图片说明

SELECT MAX(MostExpensive) as HighestPrice, cdTitle,artName
FROM (
    SELECT AVG(cd.cdPrice) AS MostExpensive, cd.cdTitle,artist.artname
    FROM `cd` inner join 'artist' on cd.artId = artist.artId GROUP BY cdGenre
) AS MostExpensiveAlbum

尝试这个:

SELECT MAX(AvgPrice) As MaximumAveragePrice, ArtName As ArtistName
FROM
(
    SELECT AVG(cdPrice) As AvgPrice, ArtName
    FROM cd 
    INNER JOIN artist ON(cd.ArtId = artist.ArtId)
    GROUP BY ArtName
) As AvgPricePerArtName 
GROUP BY ArtName
HAVING AvgPrice = MAX(AvgPrice) 

注意代码直接写在这里,没有测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM