my_table有4列:id integer, value integer, value2 integer, name character varying
如何用sql連接簡化這個查詢?
我希望所有的記錄:
- 具有相同的值2作爲其名稱是「a_name」
- 有一個字段值不及的一個記錄記錄其名稱是「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連接來簡化此查詢?
加入同一張桌子在我腦海中依然過於複雜。我試圖通過這個例子來理解。
我發生至今想什麼,是一個充滿dupplicates結果:
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');
在第一查詢看,它看起來像每個組具有相同值2的記錄,它消除最大't.value'的記錄?如果您在表格中顯示示例數據,然後顯示示例期望的結果,那將會很好。 – AaronLS 2013-03-23 05:59:38