sql基础不好,在复习,看了这个:http://www.cncms.com.cn/mssql/1040.htm
其中关于exists的介绍:
这一段,我想不明白,对于这个需求"有个顾客想看看所有拥有者的列表",主查询是 人名 但是where条件只有一个exist,exists只返回true/false 值对吧, 子查询是另一个表中item字段为chair的记录 .没有任何一个其他条件表明 '拥有者' 拥有 '椅子' 呀?! 这个语句在我看来ANTIQUEOWNERS和ANTIQUES表是毫无联系的呀?!

解决方案 »

  1.   

    就是如果表ANTIQUES中的ITEM字段有等于Chair的,那么就会返回TRUE,
    这样就会取出ANTIQUEOWNERS表中的所有记录,
    否则,ANTIQUEOWNERS表中的一条记录也去不出来。
    语句写的是比较别扭,一般EXISTS后面的SQL语句条件都会和主表关联一下。
      

  2.   

    我就是照你这么理解的,这条语句返回的会是ANTIQUEOWNERS表中的所有记录.
    但是在我的理解里模型应该是这样:
    商店有很多货,有很多顾客.ANTIQUEOWNERS表记录顾客名,及拥有的商品,ANTIQUES记录商品.where条件里总该有句ANTIQUEOWNERS.ITEM= chair吧 ....?!例子里的sql看起来是想说的这样:如果我店里有椅子,那么给我所有顾客的列表. 完全不搭界呀...