首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >横幅广告mysql-使用多个表查询

横幅广告mysql-使用多个表查询
EN

Stack Overflow用户
提问于 2010-01-13 06:37:04
回答 1查看 527关注 0票数 0

我的问题在表结构下有进一步的描述。

这是我的广告横幅系统的表格:

标语

id (唯一键)

标题

横幅

最大命中率

maxklik

活动来源

激活,直到

dato

bannerhits (播放次数)

id (唯一键)

ip地址

bannerid (索引)(指banner.id)

dato

bannerklik (点击数)

id (唯一键)

ip地址

bannerid (索引)(指banner.id)

dato

问题

我想要的是执行一个查询,从表' banner‘中选择一个横幅,其中:

(b.usertype = $usertype OR b.usertype = '0')

(活动从现在的<=活动到现在的>=

maxklik > 'bannerklik‘中的行数,其中bannerklik.bannerid = banner.id

banner.id > 'bannerhits‘中的行数,其中bannerhits.bannerid = maxhits )

你能为我创建一个查询吗,因为我真的不知道怎么做:)

EN

回答 1

Stack Overflow用户

发布于 2010-01-13 07:39:09

我认为下面的方法应该是可行的..(假设您在banner表中有一个usertype字段)

代码语言:javascript
复制
SELECT
     b.id, b.title, b.bannersrc
FROM
     banner b 
     LEFT OUTER JOIN bannerhits bh ON b.id = bh.bannerid
     LEFT OUTER JOIN bannerklik bk ON b.id = bk.bannerid 
WHERE
     (b.usertype = '0' OR b.usertype = $usertype)
     AND 
     (b.activefrom <= curdate() AND b.activeuntil >= curdate())
GROUP BY 
     b.id, b.title, b.bannersrc, b.maxklik, b.maxhits
HAVING
     ( 
      b.maxklik > count( DISTINCT(bk.id) )
      OR
      b.maxhits > count( DISTINCT(bh.id) )
     )

编辑1个

好的,让我们修改一下这里的条件。

您希望同时满足以下条件才能显示广告

  1. b.usertype be '0‘或您在$usertype
  2. 中传递的某个值。
    1. b.activefrom <= curdate()和b.activeuntil >= count> count( DISTINCT(bk.id)
    2. b.maxhits > count( curdate>count(count>count(count

我说的对吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2052988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档