请帮忙看一道sql数据库题目

关系模式如下:
商品P(商品号,商品名,颜色,单价)
商店S(商店名,商店名,城市)
销售SP(商品号,商店号,数量)
请用SQL语句写出查询在“深圳”销售量超过50的商品名称

我是这么写的,大家看看正确不?
SELECT 商品名
FROM 商品P
WHERE (商品号 IN
(SELECT 商品号
FROM 销售SP
WHERE (数量 > 50) AND (商店号 IN
(SELECT 商店号
FROM 商店S
WHERE (城市 = '深圳')))))
上面商店S写错了,应该是:
商店S(商店号,商店名,城市)

这样写就行了。而且效率较高。
SELECT *
FROM 商品p
WHERE EXISTS (SELECT 1
FROM 商品sp,
商品s
WHERE 商品sp.商店号 = 商品s.商店号
AND 商品sp.商品号 = 商品p.商品号
AND 商品sp.数量 >= 50
AND 商品s.城市 = '深圳')
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-03
你写的应该是正确的,但这样写不好,难于理解。
这样更好:
SELECT 商品名
FROM 商品P,商店S,销售SP
WHERE 商品P.商品号=销售SP .商品号 AND 商品P.商品名=商店S.商品名 AND 商店S.商店号=销售SP .商店号 AND 商店S.城市= '深圳' AND 销售SP .数量>50
第2个回答  2012-11-03
·
相似回答
大家正在搜