SQL数据库中两个表A,B存放内容不一样,需要关联两表查询数据.

A表中存放的是字段有:名称(name),编号(mediid) 机构(forgid)
B表中存放的是字段有:价格(price ),编号(mediid) 机构(forgid)
一个名称下面可以有多个价格,机构里面也包含多个机构(如:E 和 F)
需求1:现在想查一下:E机构里面的一个名称下面有多少个价格
需求2:查询E机构下面,两个表中编号相同的项目

问题1:E机构里面的每个名称下面有多少个价格,如果要制定某一个名称,可以在where条件中增加name最为条件:
select a.name , count(price) from a,b where a.mediid = b.mediid and a.forgid = b.forgid and a.forgid = 'E' group by a.name;
如果要去掉重复价格可以增加distinct,如下:
select a.name , count(distinct price) from a,b where a.mediid = b.mediid and a.forgid = b.forgid and a.forgid = 'E' group by a.name;
问题2:查询E机构下面,两个表中编号相同的项目
select count(name) from a,b where a.mediid = b.mediid and a.forgid = b.forgid and a.forgid = 'E';
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-23
select name,count(*) from a,b where a.moduleid=b.moduleid
and a.forgid='E' group by name
第2个回答  2012-09-22
你要是不建主键多少个都可以有
相似回答