my_tableには4つの列があります。id integer, value integer, value2 integer, name character varying
次のようなすべてのレコードが必要です。
- 名前が「a_name」であるレコードと同じvalue2を持っている
- 名前が「a_name」であるレコードのフィールド値よりも低いフィールド値を持っている
そして、私は次のクエリで満足のいく結果を得ています:
select t.id
from my_table as t
where t.value < ( select value from my_table where name = 'a_name')
and s.value2 = (select value2 from my_table where name = 'a_name');
しかし、SQL結合を使用してこのクエリを単純化することは可能ですか?
同じテーブルに参加することは、私の心の中でまだあまりにも複雑です。そして、私はこの例で理解しようとします。
私がこれまでに試みたのは、重複でいっぱいの結果です。
select t2.id
from my_table as t
inner join my_table as t2 on t2.value2 = t.value2
where t2.value < ( select value from my_table where name = 'a_name');