我有一个表名为 a_ad_display,因为我有下表
advId | Displaytime
我有一个带有以下列的 a_advertise 表
advertiseId| advertisename| mediaTypeId
我有一个带有以下列的 a_mediatype 表
mediaTypeId | medianame
1 | Image
2 | Animation
3 | video
a_display 表中有多个 advId 条目
我想获取 adv 显示的总和及其媒体类型,例如 a_display 表中有多少视频、图像和动画类型的广告
我是这样做的
SELECT
mdtype.medianame AS _type,
SUM(mdtype.medianame = 'Image') AS _display
FROM
a_ad_display a
INNER JOIN a_advertise adv
ON adv.advertiseId = a.advId
INNER JOIN a_mediatype mdtype
ON mdtype.mediaId = adv.mediaTypeId
GROUP BY medianame ;
但我得到了以下结果
但是如果只写 sum(distinct mdtype.medianame) 那么它会给我错误...那么我怎样才能在一个查询中获得图像视频和动画的所有值?
最佳答案
SELECT
m.medianame,
COUNT(as.advId) as Total
FROM a_mediatype as m
INNER JOIN a_advertise as a ON a.mediaTypeId = m.mediaTypeId
INNER JOIN a_ad_display as ad ON ad.advId = a.advertiseId
GROUP BY m.mediaTypeId
关于mysql - 如何在一个查询中使用内连接获取列值的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14826545/