我去一家公司的面试题,回到家里之后,发现题目问的好像很含糊,
请大神帮忙参考一下,我是否作对了?
谢谢!有三张表:
parts
pid int primary key,
pname varchar(20),
color varchar(50)
suppliers
sid int primary key,
sname varchar(20),
address varchar(50)
catalog
sid int,
pid int,
cost float,
primary key(sid, pid)
说明:catalog 数据表记录不同的suppliers提供不同Parts的价格问题1:找出只供应红色商品的商家
select c.sid
from parts as p, catalog as c
where p.pid=c.pid
group by c.sid
having count(*)=sum(case when p.color='red' then 1 else 0 end);问题2:找出供应一种红色零件或者一种绿色零件的供应商的sids;并且根据cost降序排序
select c.sid, p.color, c.cost
from parts p , catalog c
where p.pid=c.pid
and (p.color='red' or p.color='green')
group by c.sid, p.color
having count(color)=1
order by c.cost desc;问题3:统计不同供应商提供零件的种类数量,结果集降序排列
select sid, count(*) count
from catalog
group by sid
order by count desc;多表查询sql
请大神帮忙参考一下,我是否作对了?
谢谢!有三张表:
parts
pid int primary key,
pname varchar(20),
color varchar(50)
suppliers
sid int primary key,
sname varchar(20),
address varchar(50)
catalog
sid int,
pid int,
cost float,
primary key(sid, pid)
说明:catalog 数据表记录不同的suppliers提供不同Parts的价格问题1:找出只供应红色商品的商家
select c.sid
from parts as p, catalog as c
where p.pid=c.pid
group by c.sid
having count(*)=sum(case when p.color='red' then 1 else 0 end);问题2:找出供应一种红色零件或者一种绿色零件的供应商的sids;并且根据cost降序排序
select c.sid, p.color, c.cost
from parts p , catalog c
where p.pid=c.pid
and (p.color='red' or p.color='green')
group by c.sid, p.color
having count(color)=1
order by c.cost desc;问题3:统计不同供应商提供零件的种类数量,结果集降序排列
select sid, count(*) count
from catalog
group by sid
order by count desc;多表查询sql
解决方案 »
- sql语句报错,请教~~~
- MySQL user表中的Host值为::1,::1是神马意思啊?
- 临时磁盘文件需要多大的空间
- Can't create TCP/IP socket (24)
- 大家来看看远程主机上的innodb参数设定,我想update数据,但是没有用。
- Mysql中如何实现Blob的存取?
- 我想用导入文本文件的方式增加数据?文件放在什么地方?
- mysql分布式操作问题
- MySQL经常有更新,各位朋友是通过什么途径得到的?文件通常都是很大的,拨号上网没有N个小时都不可能下载完,有更好的途径吗?
- linux安装mysql-workbench
- 求助达人,如何查询最近的数据?
- 自增加的ID的问题
select c.sid, p.color, c.cost
from parts p , catalog c
where p.pid=c.pid
and (p.color='red' or p.color='green')
group by c.sid
having count(distinct color)=1
order by c.cost desc;