文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>group与having 用法

group与having 用法

时间:2010-08-02  来源:chenwenming

今天做客户项目时遇到一个sql语句不会写,总结一下,表结构如下:

cat表:(存放分类的表)
categoryid catname  

1                cat1

2                cat2

3                cat3

catpro表:(产品和分类之间的关系表)
 catid  proid

1         2

1         3

2         2


pro表:(产品信息表)
proid   proname

1         pro1

2         pro2

3         pro3

一般情况下:

比如我传一个catid为1,2的参数进来
sql语句里应该是  select * from pro inner join catpro on pro.proid=catpro.proid where catpro.catid  in (1,2)  

查询结果:

2   pro2

3   pro3


这样查出来的是并集 查出来的产品属于分类1或2

而现在的问题是:

想查出来交集 查出来的产品属于分类1和2

后来经过研究发现having count 和 group by 组合使用可以实现此功能,语句如下

select  proid from catpro
where catid in (1,2) group by proid having count(proid) =2

查询结果:

2          --这说明只有产品2吻合条件,它既属于类型1也属于类型2

虽然这个问题看起来不是很复杂,也有别的办法可以实现,研究了半天发现这种用法既快速又简单。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载