0

次の id 値を持つ navicat テーブルがあります。

VALUES: (5),(7),(9),(10),(25),(50),(55),(56),(62),(63),(64),(65),(68),(70),(72),(80);

私はクエリを持っています:

select 
a.id as first_id_number, 
b.id as second_id_number, 
((b.id - a.id) * 2) + b.id as third_id_number
from my_table as a
join my_table as b 
on a.id = (select max(id) from my_table where id < b.id)
where ((b.id - a.id) * 2) + b.id in (select id from my_table);

ただし、クエリは連続する行間でのみ数式を適用します。((より高い ID 番号 - より低い ID 番号) * 2) + より高い ID 番号が 3 番目の ID 番号に等しい、すべての可能な組み合わせをクエリしたいと思います。

例えば:

高い ID 番号 低い ID 番号 3 番目の ID 番号 5 25 65 50 55 65 62 63 65

mysqlで可能ですか?

ありがとう

4

1 に答える 1

0

のエイリアスを 2 つではなく 3 つ使用してmy_table、完全な外積を生成し、条件をwhere句に移動することを検討しましたか? いえ

select
a.id as first_id_number,
b.id as second_id_number,
c.id as third_id_number
from my_table as a, my_table as b, my_table as c
where <your fomula>
于 2012-06-03T08:43:31.647 に答える