这样子确实可以做到!但又出现另一个问题: 我希望每个产品和另一个产品的parameter只差0.5的结果出来后,将不出现在后面的查询过程中! 也就是希望每个编号的产品只出现一次!如上面的参数中: 12.7685 12.3520之间的差值符合查询结果! 那么12.7685或者12.3520这两个满足过要求的产品就不能出现在后面的查询结果中select * from a t1,a t2 where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter 这样子还是达不到要求!
嵌套查询阿 SELECT * FROM a, ( select * from a t1,a t2 where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter ) as temp WHERE a.parameter <>temp.parameter
可是这样执行有错误 “多次为 'temp' 指定了列 'ID'。” 刚接触SQL,不好意思,请指教! 全部字段为: ID parameter Other
哦,这样啊,那你就不要select * 内层嵌套的语句写成这样 (select temp.parameter from a t1,a t2 where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter )as temp
完整的应该是这样 SELECT A.ID FROM A, ( select TEMP.ID from a t1,a t2 where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter ) as temp WHERE a.ID <>temp.ID
我希望每个产品和另一个产品的parameter只差0.5的结果出来后,将不出现在后面的查询过程中!
也就是希望每个编号的产品只出现一次!如上面的参数中:
12.7685 12.3520之间的差值符合查询结果!
那么12.7685或者12.3520这两个满足过要求的产品就不能出现在后面的查询结果中select * from a t1,a t2
where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
这样子还是达不到要求!
SELECT *
FROM a, (
select * from a t1,a t2
where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
) as temp
WHERE a.parameter <>temp.parameter
“多次为 'temp' 指定了列 'ID'。”
刚接触SQL,不好意思,请指教!
全部字段为:
ID parameter Other
内层嵌套的语句写成这样
(select temp.parameter from a t1,a t2
where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
)as temp
因为这样还是会出错,写成select a.id
这样就把你需要的纪录的id都找出来了
SELECT A.ID
FROM A, (
select TEMP.ID from a t1,a t2
where abs(t1.parameter-t2.parameter)<0.5 and t1.parameter<>t2.parameter
) as temp
WHERE a.ID <>temp.ID