眼前的问题--获得具有相同速度和相同RAM容量的成对PC型号。每个结果对应该仅显示一次,即(i,j),而不显示(j,i)。 结果集:编号较大的模型,编号较小的模型,速度和RAM。
Select a.model,model, speed, hd from pc a
where (a.speed in (select speed from pc where model<>a.model and `
a.speed=speed) and a.hd in(select hd from pc where a.model<>model and a.hd=hd))
我尝试了多种方式,这只是其中之一,查询导致了相同的模型,并且每个模型都具有相同的速度。
这是数据库架构:
数据库方案包含四个表: 产品(制造商,型号,类型) PC(代码,型号,速度,内存,高清,CD,价格) 笔记本电脑(代码,型号,速度,内存,高清,屏幕,价格) 打印机(代码,型号,颜色,类型,价格)
答案 0 :(得分:3)
尝试
select p1.model model1
,p2.model model2
,p1.speed
,p1.hd
from pc p1
join pc p2 on p1.speed = p2.speed
and p1.hd = p2.hd
and p1.model < p2.model
答案 1 :(得分:0)
我有这个主意,但我不确定它会起作用,你告诉我
select a.model, b.model, a.speed, a.hd from model a
left join (select model, speed, hd from model) b on a.speed = b.speed and a.hd = b.hd
where a.model <> b.model
答案 2 :(得分:0)
这对我来说效果最好。希望对您有帮助
select distinct (A.model),
B.model,
A.speed,
A.ram from pc A
join
pc B on A.speed=B.speed and A.ram=B.ram where A.model>B.model