我在编写select时遇到了困难,我可以为每个唯一行获取多个计数,我搜索了整个网络并编写了选择,但它并不按我想要的方式工作。 所以,我有两个表的横幅和bannerhistory即使计数为零,每个唯一行的MYSQL选择计数
banners
Id UserId BannerName
167 35 Polly
168 35 Joke
169 21 Kim
170 35 Buck
................
BannerHistory
BannerId UserId IP
167 35 123asd123
167 35 123asd123
168 35 BBB123sss
.......................
So my query is:
SELECT
banners.Banner_Name,
banners.Counter,
banners.ClickCounter,
COUNT(DISTINCT(bannerhistory.Ip))
FROM
bannerhistory
INNER JOIN
banners
ON bannerhistory.BannerId = banners.ID
WHERE
bannerhistory.BannerId IN
(
SELECT
bannerhistory.BannerId
FROM
bannerhistory
WHERE
bannerhistory.UserId = $ UserId
)
GROUP BY
banners.Banner_Name
我想我要分别统计不同的IP-S为每个横幅广告userId的所有bannerNames。我的代码不工作因为它得到第一个横幅不同(计数(Ip))为每个横幅,我的意思是几乎总是计数是相同的。任何人都可以帮助纠正我的查询?或者告诉我不同的方法。 不用担心计数器和clickcounter列,它们在banners
表中没有什么值得在那里计算,只是让它们得到它们。 对不起,我的英文。
谢谢伟大的答案和其他技巧,像魅力工作,不知道'IFNULL' – temo