事情的经过式这样的,题主大三最近在学数据库的关系代数式,碰到了一个很有争议的式子
首先表是这样的然后给出的问题是这样的,要求写出对应的关系代数式,题主表示对于这个答案存在争议,但是给出答案的同学和老师觉得这个答案完全没有问题...叫我把这个关系代数转化成为SQL语言,运行查看结果...
于是乎我select Sno from SC where Cno='1'  and Cno ='2';他们给出的对应的SQL语句是:select Sno from SC where Cno='1' and Sno in (select Sno from SC where Cno='2');
于是我叫他写出select Sno from SC where Cno='1'  and Cno ='2';的关系代数式,他给出的结果是:
其实题主就像问问他们给的答案到底对不对...他们很是坚持他们的观点呢,题主觉得自己的逻辑运算遭受重创...想了一天,争了一个晚上,现在心好累...

解决方案 »

  1.   

    楼主你写的语句执行过,结果正确吗?从语句上看
    select Sno from SC where Cno='1'  and Cno ='2';
    搜索数据,他的Cno既得等于1还得等于2,这个显然是搜索不出东西的
      

  2.   

    因为一条数据的Cno只有一个值,没法同时满足两个条件
      

  3.   

    select sno from sc where cno='1'
    union
    select sno from sc where cno='2'
      

  4.   

    楼上打错了~select sno from sc where cno='1'
    intersect 
    select sno from sc where cno='2'
      

  5.   


    不是一样的。 
    昨晚喝了点酒, 也看成一样了, 以为是两个不同的字段筛选。#5 同学的SQL最容易理解。