[英]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
一起从我当前正在选择的这张cd
中JOIN
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.