作业帮 > 数学 > 作业

能刚我解释下下面sql语句的意思啊,看不懂?尤其是not exists~

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/06/24 09:06:07
能刚我解释下下面sql语句的意思啊,看不懂?尤其是not exists~
设有如图3所示的三个关系.其中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(商品数量).
找出至少供应了代号为’256’的商店所供应的全部商品的其它商店的商店名和所在城市.
SELECT ANAME,CITY FROM A
WHERE NOT EXISTS
(SELECT * FROM B
WHERE EXISTS
(SELECT * FROM AB AB1
WHERE A#='256' AND B#=B.B#)
AND NOT EXISTS
(SELECT * FROM AB AB2
WHERE A#!='256' AND A#=A.A# AND B#=B.B#)
); 
能刚我解释下下面sql语句的意思啊,看不懂?尤其是not exists~
楼主,你好!这个比较简单,也可以用INNER JION语句来写,上面那样写,反而有点麻烦了.
再问: 我也觉得用in简单,但是想弄懂这个~能不能帮我解释下
再答: 可以,我给你弄好!你给我提高悬赏分数。 顺便补充下: “ 找出至少供应了代号为’256’的商店所供应的全部商品的其它商店的商店名和所在城市。 ”这句话是什么意思,是你自己写的么?拗口难懂啊
再问: 不是我自己写的,题目就是,我也觉得看的好拗口,又看不懂答案,所以跑来问了,我悬赏分数提高了,不够我在提高,帮个忙,我快考试了
再答: --问题:找出 至少供应了代号为’256’的商店 所供应的全部商品 的其它商店的商店名和所在城市。
SELECT ANAME,CITY 
FROM A
WHERE NOT EXISTS          --第四步:从表A中查找第一、二、三步骤合并,并且不存在的记录
 (SELECT * 
  FROM B
  WHERE EXISTS          --第三步:从表B中查找存在第一步和第二步条件合并的疾苦
  (SELECT * 
   FROM AB AB1
   WHERE A#='256' AND B#=B.B#)     --第二步:从表AB中查找A#等于256的记录
   AND NOT EXISTS         --第二步:并且去除A#不能与256的记录
   (SELECT * 
    FROM AB AB2
    WHERE A#!='256' AND A#=A.A# AND B#=B.B#) --第一步:从表AB中查找A#不等于256的记录
 )