我有一个包含广告信息的表,以及一个包含广告视图的表。带有视图的表包含ip和广告ID,每次请求广告时都会更新。
SELECT ip FROM view WHERE adId = ?; // I only get the count
SELECT DISTINCT ip FROM view WHERE adId = ?; // I only get the count
SELECT * FROM advertisements;
现在,我运行所有这三个查询以生成响应。有没有办法将它们组合成一个?
答案 0 :(得分:1)
如果广告表也包含列adId或它的相应列,则可以使用该键连接这两个表。你可以有这样的查询
SELECT DISTINCT v.ip,
a.*
FROM `view` v
JOIN advertisement a
ON v.adId = a.adId
WHERE v.adId = ?
根据您的评论,您可以使用以下查询来获取每个广告所需的计数。
SELECT adId,
COUNT(ip),
COUNT(DISTINCT ip)
FROM `view`
WHERE adId = ? --you can ommit this to see all advertisements
GROUP BY adId
如果要查看广告的详细信息,可以将查询连接到广告表。