2015-06-29 43 views
1

我有兩個表:這個SQLite select語句有什麼問題?

表1是:

ID fname lname 
--------------------- 
11  p1  p2 
22  a1  a2 

表2是:

ID fk_id field1 field2 
------------------------------ 
1  11  2  3 
2  22  5  4

和我在sqlite的這一說法:

select * from Table1 
where Table1.id=(select fk_id 
       from Table2 
       where (select sum([field1]-[field2]) 
         from Table2 GROUP BY [fk_id]) > 0)

我期望這查詢返回Table1的所有行,但它只返回一行!

爲什麼?

我不明白這個!

+1

'其中Table1.id =(..)'是一個奇異的匹配使用JOIN,而不是一個子查詢(或如果一個人真的喜歡子查詢,那麼就是'IN') – user2864740

+0

問題是這個語句沒有意義,你真的想要什麼? –

+0

tnx很多!:) user2864740;)我使用IN,它工作的很好! –

回答

0

如果有結果會有所幫助。

所以我想,因爲表11 總和(2 - 3)= -1 其失敗的

select fk_id 
       from Table2 
       where (select sum([field1]-[field2]) 
         from Table2 GROUP BY [fk_id]) > 0 

所以,你只得到了22你的結果。

你可能需要一個ABS(SUM([字段1] - [字段2]),然後

+0

請格式化您的答案。 –