题目: Product(er, model, type)
PC(model, speed, ram, hd, rd, price)
Laptop(model, speed, ram ,hd, screen, price)
Printer(model, color, type, price)
查询每对具有相同速度和RAM的PC机,每一对只出现一次。例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。
我的语句
select distinct pc1.model as pc1,pc2.model as pc2
from PC as pc1,pc as pc2
where pc1.ram=pc2.ram and pc1.model!=pc2.model and pc1.speed=pc2.speed;
结果是:
model, model
1008 1011
1011 1008
这两个结果是一样的只是顺序不一样(j,i)和(i,j)请问如何让结果是有一个
PC(model, speed, ram, hd, rd, price)
Laptop(model, speed, ram ,hd, screen, price)
Printer(model, color, type, price)
查询每对具有相同速度和RAM的PC机,每一对只出现一次。例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。
我的语句
select distinct pc1.model as pc1,pc2.model as pc2
from PC as pc1,pc as pc2
where pc1.ram=pc2.ram and pc1.model!=pc2.model and pc1.speed=pc2.speed;
结果是:
model, model
1008 1011
1011 1008
这两个结果是一样的只是顺序不一样(j,i)和(i,j)请问如何让结果是有一个
from pc
where exists(select 1 from pc P where p.ram = ram and p.speed=speed and p.model != model)
from PC as pc1,pc as pc2
where pc1.ram=pc2.ram and pc1.model<pc2.model and pc1.speed=pc2.speed;
我找到个解决方法,把pc1小于的话就不会出现这情况了,就你一个回答,分就给你吧