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');