【问题标题】:Whats wrong in this SQLite select statement?这个 SQLite 选择语句有什么问题?
【发布时间】:2015-09-16 09:19:05
【问题描述】:

我有两张桌子:

表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 中有这样的声明:

从表 1 中选择 *
其中 Table1.id=(选择 fk_id
                 从表 2
                 其中(选择总和([field1]-[field2])
                        来自 Table2 GROUP BY [fk_id]) > 0)

我希望这个查询返回 Table1 的所有行,但它只返回一行!

为什么?!

我看不懂!

【问题讨论】:

  • where Table1.id=(..) 是单数匹配。使用 JOIN 而不是子查询(或者 IN 如果真的喜欢子查询)。
  • 问题是这个说法没有意义。你到底想要什么?
  • tnx 很多! :) user2864740 ;) 我使用了 IN 并且效果很好!

标签: select sqlite group-by


【解决方案1】:

如果有结果会有所帮助。

所以我猜是因为对于表 11 总和(2 - 3)= -1 失败了

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

所以你的结果只有 22 个。

那么你可能需要一个 abs(sum([field1]-[field2])。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多